The Principia Machina/TPC-PY/vectors/module corpus.json/3: Difference between revisions
Appearance
TPC-PY source vectors/module_corpus.json (0.2.1), page 3 of 3, SHA-256 b46f3c7f4280bae8; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0) |
m 1 revision imported |
(No difference)
| |
Latest revision as of 02:11, 30 September 2026
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"ANSWER ROUND 1: missing field CHOSEN\"]",
"fn": "interview_check",
"hand_checked": true,
"name": "I54 a round without CHOSEN"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
},
{
"AT": 5,
"CHOSEN": "NONE",
"COVERED": [
[
"GRAV-UNIFORM",
"1.1.0",
"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338"
]
],
"RESELECT": [
"GRAV-UNIFORM"
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[\"ASK\",[]],[\"CLAIMS\",[]]]",
"fn": "interview_check",
"hand_checked": true,
"name": "I55 a re-selection round answered NONE: the module dropped, nothing claimed"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K01 NONE: one NOT_CHOSEN line per covered module, then the closing line"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"GRAV-UNIFORM 1.0.0\",\"No variation of gravity with height or latitude beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity of bodies other than the Earth.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K02 GRAV-UNIFORM chosen: its NOT_INCLUDED lines"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"AIR-QUADRATIC",
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {
"BUOYANCY": "NO"
},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
},
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"AIR-QUADRATIC 1.0.0\",\"No wind: the air is at rest.\"],[\"AIR-QUADRATIC 1.0.0\",\"No change of air density or viscosity with altitude or temperature.\"],[\"AIR-QUADRATIC 1.0.0\",\"No lift, Magnus or added-mass force.\"],[\"AIR-QUADRATIC 1.0.0\",\"No drag outside the Reynolds window of the quadratic law.\"],[\"GRAV-UNIFORM 1.0.0\",\"No variation of gravity with height or latitude beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity of bodies other than the Earth.\"],[\"GRAV-UNIFORM 1.0.0\",\"No buoyancy: the air's upthrust on the body is not included.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K03 GRAV-UNIFORM and AIR-QUADRATIC, buoyancy NO"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"AIR-QUADRATIC",
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {
"BUOYANCY": "YES"
},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
},
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"AIR-QUADRATIC 1.0.0\",\"No wind: the air is at rest.\"],[\"AIR-QUADRATIC 1.0.0\",\"No change of air density or viscosity with altitude or temperature.\"],[\"AIR-QUADRATIC 1.0.0\",\"No lift, Magnus or added-mass force.\"],[\"AIR-QUADRATIC 1.0.0\",\"No drag outside the Reynolds window of the quadratic law.\"],[\"GRAV-UNIFORM 1.0.0\",\"No variation of gravity with height or latitude beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity of bodies other than the Earth.\"],[\"GRAV-UNIFORM 1.0.0\",\"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K04 the same, buoyancy YES"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE RETIRE",
"DATE": "2026-10-02",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K05 a module RETIRED after the answer keeps its line"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-02",
"DIGEST": "3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3",
"ID": "TEST-X",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"x_test\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"a test constant\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No test interaction X.\", \"NOT_INCLUDED\": [\"Test X adds only a constant.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"SOLO\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"q\", \"DIMENSION\": \"L1\"}], \"LAW\": [{\"NAME\": \"EQ_Q\", \"STATEMENT\": \"dq/dt = 0\", \"REFS\": [\"q\", \"t\"], \"ROLE\": \"EOM(q)\", \"EQUATION\": \"D(q,t)=0\"}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K06 a module offered after the answer has no line until answered"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
},
{
"AT": 5,
"CHOSEN": "NONE",
"COVERED": [
[
"TEST-X",
"1.0.0",
"3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3"
]
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-02",
"DIGEST": "3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3",
"ID": "TEST-X",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"x_test\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"a test constant\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No test interaction X.\", \"NOT_INCLUDED\": [\"Test X adds only a constant.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"SOLO\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"q\", \"DIMENSION\": \"L1\"}], \"LAW\": [{\"NAME\": \"EQ_Q\", \"STATEMENT\": \"dq/dt = 0\", \"REFS\": [\"q\", \"t\"], \"ROLE\": \"EOM(q)\", \"EQUATION\": \"D(q,t)=0\"}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"TEST-X 1.0.0\",\"No test interaction X.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K07 answered in a second round: its line, in ID order"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
},
{
"AT": 5,
"CHOSEN": [
"TEST-X"
],
"COVERED": [
[
"TEST-X",
"1.0.0",
"3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3"
]
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {},
"BIND": {},
"DIGEST": "3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3",
"ID": "TEST-X",
"VALUES": {},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-02",
"DIGEST": "3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3",
"ID": "TEST-X",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"x_test\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"a test constant\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No test interaction X.\", \"NOT_INCLUDED\": [\"Test X adds only a constant.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"SOLO\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"q\", \"DIMENSION\": \"L1\"}], \"LAW\": [{\"NAME\": \"EQ_Q\", \"STATEMENT\": \"dq/dt = 0\", \"REFS\": [\"q\", \"t\"], \"ROLE\": \"EOM(q)\", \"EQUATION\": \"D(q,t)=0\"}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"TEST-X 1.0.0\",\"Test X adds only a constant.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K08 chosen in the second round"
},
{
"args": {
"answer": [],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"INTERACTIONS: not answered\"]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K09 the interview refused: its refusal"
},
{
"args": {
"answer": [
{
"AT": 5,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
]
}
],
"carried": [
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
],
"claims": [
{
"ANSWERS": {},
"BIND": {},
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VALUES": {},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE RETIRE",
"DATE": "2026-10-02",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.0.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K10 a carried claim of an ID no longer offered keeps its lines"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": "NONE",
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"REFUSED\",\"MODULES: no text of MATH 1.0.0, covered by the answer\"]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K11 a covered module without its text"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"AIR-QUADRATIC",
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modified": [
[
"GRAV-UNIFORM",
"1.0.0"
]
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"AIR-QUADRATIC 1.0.0\",\"No wind: the air is at rest.\"],[\"AIR-QUADRATIC 1.0.0\",\"No change of air density or viscosity with altitude or temperature.\"],[\"AIR-QUADRATIC 1.0.0\",\"No lift, Magnus or added-mass force.\"],[\"AIR-QUADRATIC 1.0.0\",\"No drag outside the Reynolds window of the quadratic law.\"],[\"GRAV-UNIFORM 1.0.0\",\"Modified from GRAV-UNIFORM 1.0.0: its entries are the author's own.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K12 a module the author edited by hand: its Modified line after the claims' lines"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
},
{
"AT": 5,
"CHOSEN": "NONE",
"COVERED": [
[
"GRAV-UNIFORM",
"1.1.0",
"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338"
]
],
"RESELECT": [
"GRAV-UNIFORM"
]
}
],
"carried": [],
"claims": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"GRAV-UNIFORM 1.1.0\",\"No gravity: no weight acts on any DOF.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K13 a re-selection round answered NONE: the latest round's line"
},
{
"args": {
"answer": [
{
"AT": 4,
"CHOSEN": [
"GRAV-UNIFORM"
],
"COVERED": [
[
"AIR-LINEAR",
"1.0.0",
"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
]
},
{
"AT": 5,
"CHOSEN": [
"GRAV-UNIFORM"
],
"COVERED": [
[
"GRAV-UNIFORM",
"1.1.0",
"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338"
]
],
"RESELECT": [
"GRAV-UNIFORM"
]
}
],
"carried": [],
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.1.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modified": [],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[[\"AIR-LINEAR 1.0.0\",\"No linear (Stokes) air resistance.\"],[\"AIR-QUADRATIC 1.0.0\",\"No quadratic air resistance.\"],[\"MATH 1.0.0\",\"No mathematical constant: pi exists only if you declare it.\"],[\"GRAV-UNIFORM 1.1.0\",\"No variation of gravity with height or latitude beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.1.0\",\"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\"],[\"GRAV-UNIFORM 1.1.0\",\"No gravity of bodies other than the Earth.\"],[\"-\",\"Any interaction not listed under INCLUDED is absent from this kernel.\"]]]",
"fn": "not_included_lines",
"hand_checked": true,
"name": "K14 a re-selection round choosing the new version: its lines"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V01 the draft carries the expansion: MATCH, OFFERED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"SUPERSEDED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V02 re-expanded whatever the status: SUPERSEDED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE RETIRE",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"RETIRED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V03 RETIRED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE WITHDRAW",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"REASON": "the weight's sign was reversed in the binding page's preview",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"WITHDRAWN\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V04 WITHDRAWN"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "200"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MISMATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"8d1eb2100a13d8b60e655653a8b2585ccd67e290a8bc433f34f9c0bf45d7d0d3\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V05 an emitted value edited by hand: MISMATCH"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MISMATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"8b1dca0447976282e45fb6259cb4b894112ce34c9614772bf318b75a6519f7a8\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V06 the entries without the composed term: MISMATCH"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MISMATCH\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\",\"NOT WELL-FORMED\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V07 a draft TPK failing T1: NOT WELL-FORMED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.1.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CLAIM GRAV-UNIFORM 1.1.0: not declared\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V08 a claim of a version never declared"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "594e519ae499312b29433b7dd8a97ff068defcba9755b6d5d00e84c524d67b06",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CLAIM GRAV-UNIFORM 1.0.0: DIGEST does not match the declaration\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V09 a claim DIGEST not the declared one"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
[
"x"
]
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 1: not an object\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V10 a catalogue refused"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TMS": {}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"DRAFT: missing zone TPK\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V11 a draft without TPK"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
},
{
"ANSWERS": {
"BUOYANCY": "NO"
},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "air_still",
"PROPOSITION": "the air is at rest in the frame of the body's velocity",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "air_uniform",
"PROPOSITION": "the air density is uniform over the region of motion",
"REFS": [
"rho_air"
]
},
{
"NAME": "drag_cd_constant",
"PROPOSITION": "the drag coefficient C_d is constant over the motion",
"REFS": [
"C_d"
]
},
{
"NAME": "drag_no_lift",
"PROPOSITION": "the body experiences no lift force",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "drag_no_magnus",
"PROPOSITION": "the body experiences no Magnus force",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "mu_air!=0 and v_x^2+v_z^2>=0 and rho_air*sqrt(v_x^2+v_z^2)*L_ref/mu_air>1e3 and rho_air*sqrt(v_x^2+v_z^2)*L_ref/mu_air<2e5",
"NAME": "drag_quadratic_regime",
"PREDICATE": "1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law",
"REFS": [
"L_ref",
"mu_air",
"rho_air",
"v_x",
"v_z"
]
},
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L-3 M1",
"NAME": "rho_air",
"UNIT": "kg m-3",
"VALUE": "1.225"
},
{
"DIMENSION": "L-1 M1 T-1",
"NAME": "mu_air",
"UNIT": "Pa s",
"VALUE": "1.7894e-5"
},
{
"DIMENSION": "1",
"NAME": "C_d"
},
{
"DIMENSION": "L2",
"NAME": "A_ref"
},
{
"DIMENSION": "L1",
"NAME": "L_ref"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x",
"NAME": "EOM_X",
"REFS": [
"A_ref",
"C_d",
"m",
"rho_air",
"t",
"v_x",
"v_z"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0; with the quadratic drag: -5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x"
},
{
"EQUATION": "m*D(v_z,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_z-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"A_ref",
"C_d",
"g_n",
"m",
"rho_air",
"t",
"v_x",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the quadratic drag: -5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_z; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"cdeb4cce4d249afc54d6ed3ecac471160ea56d43dcd55211b681edf1676ec034\",\"cdeb4cce4d249afc54d6ed3ecac471160ea56d43dcd55211b681edf1676ec034\",[[\"AIR-QUADRATIC\",\"1.0.0\",\"OFFERED\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V12 two claims in either order: MATCH"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
},
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "air_still",
"PROPOSITION": "the air is at rest in the frame of the body's velocity",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "air_uniform",
"PROPOSITION": "the air density is uniform over the region of motion",
"REFS": [
"rho_air"
]
},
{
"NAME": "drag_cd_constant",
"PROPOSITION": "the drag coefficient C_d is constant over the motion",
"REFS": [
"C_d"
]
},
{
"NAME": "drag_no_lift",
"PROPOSITION": "the body experiences no lift force",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "drag_no_magnus",
"PROPOSITION": "the body experiences no Magnus force",
"REFS": [
"v_x",
"v_z"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "mu_air!=0 and v_x^2+v_z^2>=0 and rho_air*sqrt(v_x^2+v_z^2)*L_ref/mu_air>1e3 and rho_air*sqrt(v_x^2+v_z^2)*L_ref/mu_air<2e5",
"NAME": "drag_quadratic_regime",
"PREDICATE": "1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law",
"REFS": [
"L_ref",
"mu_air",
"rho_air",
"v_x",
"v_z"
]
},
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L-3 M1",
"NAME": "rho_air",
"UNIT": "kg m-3",
"VALUE": "1.225"
},
{
"DIMENSION": "L-1 M1 T-1",
"NAME": "mu_air",
"UNIT": "Pa s",
"VALUE": "1.7894e-5"
},
{
"DIMENSION": "1",
"NAME": "C_d"
},
{
"DIMENSION": "L2",
"NAME": "A_ref"
},
{
"DIMENSION": "L1",
"NAME": "L_ref"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x",
"NAME": "EOM_X",
"REFS": [
"A_ref",
"C_d",
"m",
"rho_air",
"t",
"v_x",
"v_z"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0; with the quadratic drag: -5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x"
},
{
"EQUATION": "m*D(v_z,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_z-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"A_ref",
"C_d",
"g_n",
"m",
"rho_air",
"t",
"v_x",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the quadratic drag: -5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_z; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CLAIM GRAV-UNIFORM 1.0.0: question BUOYANCY is not answered\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V13 the expansion refused: its refusal"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
},
{
"NAME": "gravity_uniform",
"PROPOSITION": "the gravitational field is uniform over the region abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
},
{
"NAME": "gravity_standard",
"PROPOSITION": "the local gravitational acceleration equals the conventional standard value g_n",
"REFS": [
"g_n"
]
},
{
"NAME": "frame_inertial",
"PROPOSITION": "the frame in which z is measured is treated as inertial",
"REFS": [
"z"
]
}
],
"BOUNDARY": [
{
"CONDITION": "abs(z)<h_max",
"NAME": "gravity_region",
"PREDICATE": "abs(z) < h_max",
"REFS": [
"h_max",
"z"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
},
{
"DIMENSION": "L1 T-2",
"NAME": "g_n",
"UNIT": "m s-2",
"VALUE": "9.80665"
},
{
"DIMENSION": "L1",
"NAME": "h_max",
"UNIT": "m",
"VALUE": "100"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=-m*g_n",
"NAME": "EOM_Z",
"REFS": [
"g_n",
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0; with the weight: -m*g_n"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "d9298a10d1b0735837dc4bd85dac641b0f3cef27a47e5d53a54f2f3f5b2fcffa",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"MODULES: AIR-LINEAR 1.0.0: the text's digest does not match the declaration\"]",
"fn": "module_verify",
"hand_checked": true,
"name": "V14 a text whose digest is not its declaration's"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [],
"draft": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"MATCH\",\"ef4a82ce6243cb179ef41037a1590dd707e66eb967d0f92f5a4214d5379bb9e2\",\"ef4a82ce6243cb179ef41037a1590dd707e66eb967d0f92f5a4214d5379bb9e2\",[]]",
"fn": "module_verify",
"hand_checked": false,
"name": "V15 no claim: the base itself"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"OFFERED\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D01 every claim OFFERED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"SUPERSEDED\",\"1.1.0\",\"SAME\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D02 SUPERSEDED by a version that expands alike: SAME"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "636bb7a121552e079d2d49b3e6a5899a1dead386a40c113a871905081c7be628",
"ID": "GRAV-UNIFORM",
"VERSION": "1.2.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.2.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}, {\"NAME\": \"gravity_no_tides\", \"PROPOSITION\": \"no tidal force acts on the body\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"SUPERSEDED\",\"1.2.0\",\"DIFFERS\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D03 SUPERSEDED by a version that expands otherwise: DIFFERS"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "49dbf227e03cd8cd0a5ddbff751e6cbceca6d92fef564b1f63d6c73287153718",
"ID": "GRAV-UNIFORM",
"VERSION": "2.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"2.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}, {\"NAME\": \"z_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the height of the origin above sea level\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}, \"z_ref\": {}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}, \"z_ref\": {}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"SUPERSEDED\",\"2.0.0\",\"NOT EXPANDED: CLAIM GRAV-UNIFORM 2.0.0: VALUES: z_ref is author supplied: give a value, or {} for a symbolic constant\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D04 SUPERSEDED by a version this draft's binding cannot expand"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
},
{
"ACT": "MODULE RETIRE",
"DATE": "2026-10-03",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"SUPERSEDED\",\"NONE OFFERED\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D05 SUPERSEDED, and no version OFFERED now"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE RETIRE",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"RETIRED\",\"2026-10-02\"]]],[\"GATE\",[]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D06 RETIRED"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE WITHDRAW",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"REASON": "the weight's sign was reversed in the binding page's preview",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"GRAV-UNIFORM\",\"1.0.0\",\"WITHDRAWN\",\"2026-10-02\",\"the weight's sign was reversed in the binding page's preview\"]]],[\"GATE\",[\"This draft uses GRAV-UNIFORM 1.0.0, withdrawn on 2026-10-02 for: the weight's sign was reversed in the binding page's preview. Declare with it?\"]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D07 WITHDRAWN: the line for H-DECL's one question"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {
"BUOYANCY": "NO"
},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
},
{
"ANSWERS": {},
"BIND": {
"VELOCITY": [
"v_x",
"v_z"
]
},
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VALUES": {
"A_ref": {},
"C_d": {},
"L_ref": {}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE WITHDRAW",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"REASON": "the weight's sign was reversed in the binding page's preview",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"OK\",[\"CLAIMS\",[[\"AIR-QUADRATIC\",\"1.0.0\",\"OFFERED\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"WITHDRAWN\",\"2026-10-02\",\"the weight's sign was reversed in the binding page's preview\"]]],[\"GATE\",[\"This draft uses GRAV-UNIFORM 1.0.0, withdrawn on 2026-10-02 for: the weight's sign was reversed in the binding page's preview. Declare with it?\"]]]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D08 two claims, one WITHDRAWN"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338",
"ID": "GRAV-UNIFORM",
"VERSION": "1.1.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"MODULES: no text of GRAV-UNIFORM 1.1.0 (OFFERED)\"]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D09 the OFFERED successor's text missing"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"x"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CLAIM GRAV-UNIFORM 1.0.0: BIND: slot MASS: x is not a CONSTANT of the TPK\"]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D10 the draft's own expansion refused: its refusal"
},
{
"args": {
"base": {
"TPK": {
"ASSUMPTION": [
{
"NAME": "point_mass",
"PROPOSITION": "the body is treated as a point mass",
"REFS": [
"m"
]
}
],
"CONSTANT": [
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "T1",
"NAME": "t"
},
{
"DIMENSION": "L1",
"NAME": "x"
},
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_x"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v_z"
}
],
"LAW": [
{
"EQUATION": "D(x,t)=v_x",
"NAME": "KIN_X",
"REFS": [
"t",
"v_x",
"x"
],
"ROLE": "EOM(x)",
"STATEMENT": "dx/dt = v_x"
},
{
"EQUATION": "D(z,t)=v_z",
"NAME": "KIN_Z",
"REFS": [
"t",
"v_z",
"z"
],
"ROLE": "EOM(z)",
"STATEMENT": "dz/dt = v_z"
},
{
"EQUATION": "m*D(v_x,t)=0",
"NAME": "EOM_X",
"REFS": [
"m",
"t",
"v_x"
],
"ROLE": "EOM(v_x)",
"STATEMENT": "m dv_x/dt = 0"
},
{
"EQUATION": "m*D(v_z,t)=0",
"NAME": "EOM_Z",
"REFS": [
"m",
"t",
"v_z"
],
"ROLE": "EOM(v_z)",
"STATEMENT": "m dv_z/dt = 0"
}
]
}
},
"claims": [
{
"ANSWERS": {},
"BIND": {
"HEIGHT": [
"z"
],
"MASS": [
"m"
],
"UP_VELOCITY": [
"v_z"
]
},
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VALUES": {
"h_max": {
"UNIT": "m",
"VALUE": "100"
}
},
"VERSION": "1.0.0"
}
],
"lines": "L4",
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
]
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINES: not a list\"]",
"fn": "draft_module_status",
"hand_checked": true,
"name": "D11 a catalogue refused"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
]
],
"PREFIX": "RR"
},
{
"MODULES_USED": [
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
],
"PREFIX": "QQ"
},
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "AA"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"OK\",[\"ROWS\",[[\"AIR-QUADRATIC\",\"1.0.0\",\"RR\",\"OFFERED\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"AA\",\"OFFERED\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"RR\",\"OFFERED\"],[\"MATH\",\"1.0.0\",\"QQ\",\"OFFERED\"]]],[\"UWCS ON WITHDRAWN\",0]]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U01 rows by ID, VERSION, PREFIX"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
]
],
"PREFIX": "RR"
},
{
"MODULES_USED": [
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
],
"PREFIX": "QQ"
},
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "AA"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE WITHDRAW",
"DATE": "2026-10-02",
"ID": "GRAV-UNIFORM",
"REASON": "the weight's sign was reversed in the binding page's preview",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"OK\",[\"ROWS\",[[\"AIR-QUADRATIC\",\"1.0.0\",\"RR\",\"OFFERED\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"AA\",\"WITHDRAWN\"],[\"GRAV-UNIFORM\",\"1.0.0\",\"RR\",\"WITHDRAWN\"],[\"MATH\",\"1.0.0\",\"QQ\",\"OFFERED\"]]],[\"UWCS ON WITHDRAWN\",2]]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U02 a version WITHDRAWN: the certificates are unchanged, the view shows it"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"TEST-V",
"1.2.0",
"2ab8c63a63b208bd8731b8b32ef3126e9b8bc67469661b3d2621bad70ddc9522"
]
],
"PREFIX": "BB"
},
{
"MODULES_USED": [
[
"TEST-V",
"1.10.0",
"65e0e2ab9e080526e02b36b563481a9524714fb892344305ed1331d4ef97da20"
]
],
"PREFIX": "CC"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "2ab8c63a63b208bd8731b8b32ef3126e9b8bc67469661b3d2621bad70ddc9522",
"ID": "TEST-V",
"VERSION": "1.2.0"
},
{
"ACT": "MODULE VERSION",
"DATE": "2026-10-02",
"DIGEST": "65e0e2ab9e080526e02b36b563481a9524714fb892344305ed1331d4ef97da20",
"ID": "TEST-V",
"VERSION": "1.10.0"
}
]
},
"expected": "[\"OK\",[\"ROWS\",[[\"TEST-V\",\"1.10.0\",\"CC\",\"OFFERED\"],[\"TEST-V\",\"1.2.0\",\"BB\",\"SUPERSEDED\"]]],[\"UWCS ON WITHDRAWN\",0]]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U03 versions in code point order: 1.10.0 before 1.2.0"
},
{
"args": {
"certificates": [],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"OK\",[\"ROWS\",[]],[\"UWCS ON WITHDRAWN\",0]]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U04 no certificate"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"9.9.9",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE RR: GRAV-UNIFORM 9.9.9 is not declared\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U05 a version never declared"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338"
]
],
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE RR: GRAV-UNIFORM 1.0.0: DIGEST does not match the declaration\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U06 a digest not the declared one"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "RR"
},
{
"MODULES_USED": [
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
],
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATES: duplicate prefix RR\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U07 a prefix twice"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE RR: duplicate module GRAV-UNIFORM\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U08 a module twice in one certificate"
},
{
"args": {
"certificates": {
"MODULES_USED": [],
"PREFIX": "RR"
},
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATES: not a list\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U09 certificates not a list"
},
{
"args": {
"certificates": [
{
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE 1: missing field MODULES_USED\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U10 a certificate without MODULES_USED"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [],
"PREFIX": "R-R"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE 1: PREFIX R-R is not a prefix\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U11 a prefix that is no identifier"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
"GRAV-UNIFORM"
],
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE 1: field MODULES_USED has the wrong type\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U12 MODULES_USED not a list of triples"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
],
[
"AIR-QUADRATIC",
"1.0.0",
"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852"
]
],
"PREFIX": "RR"
},
{
"MODULES_USED": [
[
"MATH",
"1.0.0",
"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf"
]
],
"PREFIX": "QQ"
},
{
"MODULES_USED": [
[
"GRAV-UNIFORM",
"1.0.0",
"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025"
]
],
"PREFIX": "AA"
}
],
"lines": [
[
"x"
]
]
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 1: not an object\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U13 a catalogue refused"
},
{
"args": {
"certificates": [
"RR"
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE 1: not an object\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U14 a certificate that is not an object (RV F-9)"
},
{
"args": {
"certificates": [
{
"MODULES_USED": [],
"NOTE": "x",
"PREFIX": "RR"
}
],
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
]
},
"expected": "[\"REFUSED\",\"CERTIFICATE 1: unknown field NOTE\"]",
"fn": "module_use_view",
"hand_checked": true,
"name": "U15 a certificate with an unknown field (RV F-9)"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [],
"modules": [],
"text": "{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[\"air_still\",\"air_uniform\",\"drag_sphere\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M01 ADD AIR-LINEAR to an empty catalogue: PASS"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"EXCLUDED\"],[\"ATOMICITY\",[\"air_still\",\"air_uniform\",\"drag_cd_constant\",\"drag_no_lift\",\"drag_no_magnus\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M02 ADD AIR-QUADRATIC: EXCLUDES a declared ID; the excluded pair not combined"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"BINDING\",\"TABLE\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M03 ADD GRAV-UNIFORM: both bindings, both air pairs on the shared binding"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
],
"text": "{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"GRAV-UNIFORM\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M04 ADD MATH: combined with every offered module (the pi_c merge with AIR-LINEAR)"
},
{
"args": {
"act": "MODULE VERSION",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.1.0\", \"TITLE\": \"Uniform gravity at the standard value g_n (text revised)\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"BINDING\",\"TABLE\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"MATH\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M05 VERSION GRAV-UNIFORM 1.1.0: never paired with its own ID"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [],
"modules": [],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025\"],[\"REFERENCES\",\"WITH AIR-* matches no declared module\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"BINDING\",\"TABLE\",\"PASS\"],[\"ATOMICITY\",[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M06 ADD GRAV-UNIFORM before any air module: WITH matches nothing"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [],
"modules": [],
"text": "{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852\"],[\"REFERENCES\",\"EXCLUDES AIR-LINEAR matches no declared module\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[\"air_still\",\"air_uniform\",\"drag_cd_constant\",\"drag_no_lift\",\"drag_no_magnus\"]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M07 ADD AIR-QUADRATIC before AIR-LINEAR: EXCLUDES matches nothing"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-PI\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a rough pi\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.14\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, roughly\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No rough pi.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"a3cb8d842fcb338a7a6a158932f252f18fa6630a2126ad5192b23f938d996468\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"PROJECTILE_2D\",\"EXPAND: AIR-LINEAR 1.0.0 and TEST-PI 1.0.0 both emit pi_c, differently\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"GRAV-UNIFORM\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"MATH\",\"1.0.0\",\"PROJECTILE_2D\",\"EXPAND: MATH 1.0.0 and TEST-PI 1.0.0 both emit pi_c, differently\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M08 ADD TEST-PI: two pairs refused (pi_c differently)"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"x_test\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"a test constant\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No test interaction X.\", \"NOT_INCLUDED\": [\"Test X adds only a constant.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"SOLO\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"q\", \"DIMENSION\": \"L1\"}], \"LAW\": [{\"NAME\": \"EQ_Q\", \"STATEMENT\": \"dq/dt = 0\", \"REFS\": [\"q\", \"t\"], \"ROLE\": \"EOM(q)\", \"EQUATION\": \"D(q,t)=0\"}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"3ecd3a5b540cc15ae65165e5246c4814ef6cb2e7fd293e3578041cbe66efbcb3\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"SOLO\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"-\",\"NO SHARED BINDING\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"-\",\"NO SHARED BINDING\"],[\"PAIR\",\"GRAV-UNIFORM\",\"1.0.0\",\"-\",\"NO SHARED BINDING\"],[\"PAIR\",\"MATH\",\"1.0.0\",\"-\",\"NO SHARED BINDING\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M09 ADD TEST-X, whose one binding no offered module shares"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [],
"modules": [],
"text": "{\"ID\": \"TEST-BADB\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a boundary without its guard\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [{\"SLOT\": \"SPEEDY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"a velocity\"}], \"PARAMETERS\": [{\"NAME\": \"k_b\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a number\"}, {\"NAME\": \"h_b\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a divisor\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [{\"NAME\": \"bad_region\", \"PREDICATE\": \"k_b / h_b > 1\", \"CONDITION\": \"k_b/h_b > 1\"}], \"NOT_CHOSEN\": \"No guard test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"SPEEDY\": [\"v_x\"]}, \"VALUES\": {\"h_b\": {}, \"k_b\": {}}, \"ANSWERS\": {}}, {\"NAME\": \"WRONG\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"SPEEDY\": [\"z\"]}, \"VALUES\": {\"h_b\": {}, \"k_b\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"fee898784f6b5ad8e87313fc50c4f4960054fce01694691df17b215d88be25b4\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"T6: BOUNDARY:bad_region: CONDITION uses / on h_b with no guard h_b != 0 (T6)\"],[\"BINDING\",\"WRONG\",\"CLAIM TEST-BADB 1.0.0: BIND: slot SPEEDY: z has dimension L1, not L1 T-1\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M10 a binding failing T6, a binding failing its BIND"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 5: MODULE ADD of GRAV-UNIFORM, an ID already declared (no ID is reissued)\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M11 ADD of an ID already declared"
},
{
"args": {
"act": "MODULE VERSION",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 5: GRAV-UNIFORM 1.0.0 is already declared (no version is reissued)\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M12 VERSION reissuing a version"
},
{
"args": {
"act": "MODULE RETIRE",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
},
"expected": "[\"REFUSED\",\"ACT: MODULE RETIRE is not MODULE ADD or MODULE VERSION\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M13 an act that is neither ADD nor VERSION"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{"
},
"expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M14 a proposal that does not parse"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
],
"text": "{\"ID\": \"TEST-PI\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a rough pi\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.14\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, roughly\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No rough pi.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"expected": "[\"REFUSED\",\"MODULES: no text of MATH 1.0.0 (OFFERED)\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M15 a text missing for an OFFERED version"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
[
"x"
]
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-PI\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a rough pi\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.14\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, roughly\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No rough pi.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 1: not an object\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M16 a catalogue refused"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-99-01",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-PI\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a rough pi\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.14\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, roughly\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No rough pi.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 5: DATE 2026-99-01 is not a date\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M17 a date that is no date"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-09-30",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-PI\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a rough pi\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.14\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, roughly\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No rough pi.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"expected": "[\"REFUSED\",\"CATALOGUE: LINE 5: DATE 2026-09-30 is before the previous line's\"]",
"fn": "module_check",
"hand_checked": true,
"name": "M18 a date before the last line's"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
"ID": "AIR-LINEAR",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
"ID": "AIR-QUADRATIC",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
"ID": "GRAV-UNIFORM",
"VERSION": "1.0.0"
},
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
"ID": "MATH",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"AIR-LINEAR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, linear in the speed (Stokes drag on a sphere)\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}, {\"NAME\": \"R_s\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the radius of the sphere\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"6*pi_c*mu_air*R_s*VELOCITY\", \"LABEL\": \"the linear (Stokes) drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_sphere\", \"PROPOSITION\": \"the body is a rigid sphere of radius R_s\", \"REFS\": [\"R_s\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_linear_regime\", \"PREDICATE\": \"2 rho_air |v| R_s / mu_air < 1: the regime of the linear law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air < 1\"}], \"NOT_CHOSEN\": \"No linear (Stokes) air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No drag outside the regime of the linear law.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"R_s\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"AIR-QUADRATIC\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Air resistance at sea level, quadratic in the speed\", \"SOURCE\": \"ISO 2533:1975, Standard Atmosphere, sea-level values: density 1.225 kg m-3, dynamic viscosity 1.7894e-5 Pa s\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"rho_air\", \"DIMENSION\": \"L-3 M1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.225\", \"UNIT\": \"kg m-3\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the density of air at sea level\"}, {\"NAME\": \"mu_air\", \"DIMENSION\": \"L-1 M1 T-1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1.7894e-5\", \"UNIT\": \"Pa s\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the dynamic viscosity of air at sea level\"}, {\"NAME\": \"C_d\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the drag coefficient of the body\"}, {\"NAME\": \"A_ref\", \"DIMENSION\": \"L2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference area of the drag coefficient\"}, {\"NAME\": \"L_ref\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the reference length of the Reynolds number\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"0.5*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\", \"LABEL\": \"the quadratic drag\"}], \"ASSUMPTIONS\": [{\"NAME\": \"air_still\", \"PROPOSITION\": \"the air is at rest in the frame of the body's velocity\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"air_uniform\", \"PROPOSITION\": \"the air density is uniform over the region of motion\", \"REFS\": [\"rho_air\"]}, {\"NAME\": \"drag_cd_constant\", \"PROPOSITION\": \"the drag coefficient C_d is constant over the motion\", \"REFS\": [\"C_d\"]}, {\"NAME\": \"drag_no_lift\", \"PROPOSITION\": \"the body experiences no lift force\", \"REFS\": [\"VELOCITY\"]}, {\"NAME\": \"drag_no_magnus\", \"PROPOSITION\": \"the body experiences no Magnus force\", \"REFS\": [\"VELOCITY\"]}], \"BOUNDARIES\": [{\"NAME\": \"drag_quadratic_regime\", \"PREDICATE\": \"1e3 < rho_air |v| L_ref / mu_air < 2e5: the Reynolds window of the quadratic law\", \"CONDITION\": \"mu_air != 0 and SPEED2 >= 0 and rho_air*sqrt(SPEED2)*L_ref/mu_air > 1000 and rho_air*sqrt(SPEED2)*L_ref/mu_air < 200000\"}], \"NOT_CHOSEN\": \"No quadratic air resistance.\", \"NOT_INCLUDED\": [\"No wind: the air is at rest.\", \"No change of air density or viscosity with altitude or temperature.\", \"No lift, Magnus or added-mass force.\", \"No drag outside the Reynolds window of the quadratic law.\"], \"EXCLUDES\": [\"AIR-LINEAR\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"A_ref\": {}, \"C_d\": {}, \"L_ref\": {}}, \"ANSWERS\": {}}]}",
"{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"SOURCE\": \"g_n = 9.80665 m s-2, exact by definition: 3rd CGPM (1901), declaration on the unit of mass and on the definition of weight\", \"PREREQUISITES\": [{\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"UP_VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"}, {\"SLOT\": \"HEIGHT\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the position along the same upward axis\"}], \"PARAMETERS\": [{\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}, {\"NAME\": \"h_max\", \"DIMENSION\": \"L1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"ASSUMPTIONS\": [{\"NAME\": \"gravity_uniform\", \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\", \"REFS\": [\"HEIGHT\", \"h_max\"]}, {\"NAME\": \"gravity_standard\", \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\", \"REFS\": [\"g_n\"]}, {\"NAME\": \"frame_inertial\", \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\", \"REFS\": [\"HEIGHT\"]}], \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"NOT_INCLUDED\": [\"No variation of gravity with height or latitude beyond what g_n contains.\", \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\", \"No gravity of bodies other than the Earth.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [{\"WITH\": \"AIR-*\", \"QUESTION_ID\": \"BUOYANCY\", \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\", \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\", \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"}], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"100\", \"UNIT\": \"m\"}}, \"ANSWERS\": {}}, {\"NAME\": \"TABLE\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"CONSTRAINT\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C_Z\", \"TARGET\": \"z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"the puck stays on the table top, z = 0\"}, {\"NAME\": \"C_VZ\", \"TARGET\": \"v_z\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m s-1\", \"STATEMENT\": \"the puck has no vertical velocity\"}]}, \"BIND\": {\"HEIGHT\": [\"z\"], \"MASS\": [\"m\"], \"UP_VELOCITY\": [\"v_z\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}",
"{\"ID\": \"MATH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"The mathematical constant pi, as the CONSTANT pi_c\", \"SOURCE\": \"pi to 16 significant digits, 3.141592653589793, the nearest IEEE 754 binary64 value\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"pi_c\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"3.141592653589793\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"pi, to 16 significant digits\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No mathematical constant: pi exists only if you declare it.\", \"NOT_INCLUDED\": [\"pi_c is pi rounded to 16 significant digits; no other mathematical constant is declared.\"], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-PUSH\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a push and a pull\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [{\"SLOT\": \"PUSHED\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity that receives the push\"}, {\"SLOT\": \"PULLED\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the velocity that receives the pull\"}], \"PARAMETERS\": [{\"NAME\": \"F_a\", \"DIMENSION\": \"L1 M1 T-2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the first applied force\"}, {\"NAME\": \"F_b\", \"DIMENSION\": \"L1 M1 T-2\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"the second applied force\"}], \"SUMS\": [], \"TERMS\": [{\"TARGET\": \"PUSHED\", \"SIGN\": \"+\", \"EXPR\": \"F_a+F_b\", \"LABEL\": \"the push\"}, {\"TARGET\": \"PULLED\", \"SIGN\": \"-\", \"EXPR\": \"F_a+F_b\", \"LABEL\": \"the pull\"}], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No push or pull.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"PULLED\": [\"v_z\"], \"PUSHED\": [\"v_x\"]}, \"VALUES\": {\"F_a\": {}, \"F_b\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"b6b691673ac7755590314caeba64e2cb06e1357cb67cfb3b55d4cb0581317657\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-LINEAR\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"AIR-QUADRATIC\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"GRAV-UNIFORM\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"MATH\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M19 ADD TEST-PUSH: SIGN + and a wrapped sum pass on the shared binding"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-01",
"lines": [],
"modules": [],
"text": "{\"ID\": \"TEST-T3\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a binding failing T3\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_t\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"1\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"a constant\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No T3 test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"FIX2\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}], \"LAW\": [{\"NAME\": \"EQ_X\", \"STATEMENT\": \"dx/dt = 0\", \"REFS\": [\"t\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=0\"}], \"CONSTRAINT\": [{\"NAME\": \"C1\", \"TARGET\": \"x\", \"ACTION\": \"FIX\", \"VALUE\": \"0\", \"UNIT\": \"m\", \"STATEMENT\": \"x is held at 0\"}, {\"NAME\": \"C2\", \"TARGET\": \"x\", \"ACTION\": \"FIX\", \"VALUE\": \"1\", \"UNIT\": \"m\", \"STATEMENT\": \"x is held at 1\"}]}, \"BIND\": {}, \"VALUES\": {}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"1fd21309551ee5583ab488764db14d09dcc5597fd02996446e0bd8ac7a7a1699\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"FIX2\",\"T3: CONSTRAINT:C1 and CONSTRAINT:C2: x fixed at 0 m and at 1 m (T3)\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M20 a binding failing T3 at depth 1"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "d2c0eaf665eb165b5c7e311008011349e146564f0679f8ca32f5c98a5924bd8b",
"ID": "TEST-SUMP",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"TEST-SUMP\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a sum inside a product\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"k_q\", \"DIMENSION\": \"L-1 M1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a quadratic coefficient\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"k_q*SPEED2\", \"LABEL\": \"the test force\"}], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No sum test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"k_q\": {}}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-SHARE\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: an author parameter shared by name\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_q\", \"DIMENSION\": \"L-1 M1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a quadratic coefficient, named by another module too\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No shared-name test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {\"k_q\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"PASS\",[[\"DIGEST\",\"9252524a73f9979d905a4b84ed2a5186d170d071f8a81f9cbd222c8e53da7b12\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"TEST-SUMP\",\"1.0.0\",\"PROJECTILE_2D\",\"PASS\"],[\"SHARED PARAMETER\",\"TEST-SHARE\",\"1.0.0\",\"TEST-SUMP\",\"1.0.0\",\"k_q\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M21 ADD TEST-SHARE: an AUTHOR parameter named as TEST-SUMP's: the question for H-DECL"
},
{
"args": {
"act": "MODULE ADD",
"date": "2026-10-02",
"lines": [
{
"ACT": "MODULE ADD",
"DATE": "2026-10-01",
"DIGEST": "d2c0eaf665eb165b5c7e311008011349e146564f0679f8ca32f5c98a5924bd8b",
"ID": "TEST-SUMP",
"VERSION": "1.0.0"
}
],
"modules": [
"{\"ID\": \"TEST-SUMP\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: a sum inside a product\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [{\"SLOT\": \"VELOCITY\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"the velocity components of the body, one per axis\"}], \"PARAMETERS\": [{\"NAME\": \"k_q\", \"DIMENSION\": \"L-1 M1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a quadratic coefficient\"}], \"SUMS\": [{\"NAME\": \"SPEED2\", \"OVER\": \"VELOCITY\", \"EACH\": \"VELOCITY^2\"}], \"TERMS\": [{\"TARGET\": \"VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"k_q*SPEED2\", \"LABEL\": \"the test force\"}], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No sum test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {\"VELOCITY\": [\"v_x\", \"v_z\"]}, \"VALUES\": {\"k_q\": {}}, \"ANSWERS\": {}}]}"
],
"text": "{\"ID\": \"TEST-KQ1\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: an author parameter of another dimension\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_q\", \"DIMENSION\": \"1\", \"SUPPLY\": \"AUTHOR\", \"LABEL\": \"a quadratic coefficient, named by another module too\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No dimension test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_z)\", \"EQUATION\": \"m*D(v_z,t)=0\"}], \"ASSUMPTION\": [{\"NAME\": \"point_mass\", \"PROPOSITION\": \"the body is treated as a point mass\", \"REFS\": [\"m\"]}]}, \"BIND\": {}, \"VALUES\": {\"k_q\": {}}, \"ANSWERS\": {}}]}"
},
"computed": "digests by existing TPC-PY functions over literal data",
"expected": "[\"OK\",\"FAIL\",[[\"DIGEST\",\"9c5e719795c79ad949db741e4bddaf72d68c7b01afe8c854b6af8d20b43f2573\"],[\"REFERENCES\",\"PASS\"],[\"BINDING\",\"PROJECTILE_2D\",\"PASS\"],[\"PAIR\",\"TEST-SUMP\",\"1.0.0\",\"-\",\"SHARED PARAMETER k_q: DIMENSION 1 in TEST-KQ1 1.0.0, L-1 M1 in TEST-SUMP 1.0.0\"],[\"ATOMICITY\",[]]]]",
"fn": "module_check",
"hand_checked": false,
"name": "M22 ADD TEST-KQ1: the same name, another DIMENSION: the pair refused (S51)"
}
],
"corpus": "module",
"note": "vectors first: every expectation a literal of the generator; digests and D(TPK) computed by existing TPC-PY functions over literal data (see the generator's docstring); no tpc_module exists",
"spec": "tpm_module_spec 0.2.0",
"version": "0.2.1"
}