Jump to content

The Principia Machina/TPC-PY/vectors/module corpus.json/3

From The Invariance Itself
Revision as of 02:10, 30 September 2026 by BFP Rauch (talk | contribs) (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))
     "{\"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"
}