Jump to content

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

From The Invariance Itself
Revision as of 04:39, 28 September 2026 by BFP Rauch (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
{
 "cases": [
  {
   "args": {
    "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": "[\"OK\",\"GRAV-UNIFORM\",\"1.0.0\",[[\"MASS\",\"CONSTANT\",\"M1\",1,1],[\"UP_VELOCITY\",\"DOF\",\"L1 T-1\",1,1],[\"HEIGHT\",\"DOF\",\"L1\",1,1]],[[\"g_n\",\"DECLARED\",\"L1 T-2\"],[\"h_max\",\"AUTHOR\",\"L1\"]],[],[[\"UP_VELOCITY\",\"-\",\"MASS*g_n\"]],[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"],[[\"gravity_region\",\"abs(HEIGHT)<h_max\"]],[],[[\"AIR-*\",\"BUOYANCY\"]],[\"PROJECTILE_2D\",\"TABLE\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P01 GRAV-UNIFORM 1.0.0 parses"
  },
  {
   "args": {
    "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\": {}}]}"
   },
   "expected": "[\"OK\",\"AIR-QUADRATIC\",\"1.0.0\",[[\"VELOCITY\",\"DOF\",\"L1 T-1\",1,3]],[[\"rho_air\",\"DECLARED\",\"L-3 M1\"],[\"mu_air\",\"DECLARED\",\"L-1 M1 T-1\"],[\"C_d\",\"AUTHOR\",\"1\"],[\"A_ref\",\"AUTHOR\",\"L2\"],[\"L_ref\",\"AUTHOR\",\"L1\"]],[[\"SPEED2\",\"VELOCITY\",\"VELOCITY^2\"]],[[\"VELOCITY\",\"-\",\"5e-1*rho_air*C_d*A_ref*sqrt(SPEED2)*VELOCITY\"]],[\"air_still\",\"air_uniform\",\"drag_cd_constant\",\"drag_no_lift\",\"drag_no_magnus\"],[[\"drag_quadratic_regime\",\"mu_air!=0 and SPEED2>=0 and rho_air*sqrt(SPEED2)*L_ref/mu_air>1e3 and rho_air*sqrt(SPEED2)*L_ref/mu_air<2e5\"]],[\"AIR-LINEAR\"],[],[\"PROJECTILE_2D\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P02 AIR-QUADRATIC 1.0.0 parses; the template spelled canonically"
  },
  {
   "args": {
    "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\": {}}]}"
   },
   "expected": "[\"OK\",\"AIR-LINEAR\",\"1.0.0\",[[\"VELOCITY\",\"DOF\",\"L1 T-1\",1,3]],[[\"rho_air\",\"DECLARED\",\"L-3 M1\"],[\"mu_air\",\"DECLARED\",\"L-1 M1 T-1\"],[\"pi_c\",\"DECLARED\",\"1\"],[\"R_s\",\"AUTHOR\",\"L1\"]],[[\"SPEED2\",\"VELOCITY\",\"VELOCITY^2\"]],[[\"VELOCITY\",\"-\",\"6*pi_c*mu_air*R_s*VELOCITY\"]],[\"air_still\",\"air_uniform\",\"drag_sphere\"],[[\"drag_linear_regime\",\"mu_air!=0 and SPEED2>=0 and 2*rho_air*sqrt(SPEED2)*R_s/mu_air<1\"]],[],[],[\"PROJECTILE_2D\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P03 AIR-LINEAR 1.0.0 parses"
  },
  {
   "args": {
    "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\": {}}]}"
   },
   "expected": "[\"OK\",\"MATH\",\"1.0.0\",[],[[\"pi_c\",\"DECLARED\",\"1\"]],[],[],[],[],[],[],[\"PROJECTILE_2D\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P04 MATH 1.0.0 parses"
  },
  {
   "args": {
    "text": "{\n  \"ID\": \"GRAV-UNIFORM\",\n  \"VERSION\": \"1.0.0\",\n  \"TITLE\": \"Uniform gravity at the standard value g_n\",\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\",\n  \"PREREQUISITES\": [\n    {\n      \"SLOT\": \"MASS\",\n      \"KIND\": \"CONSTANT\",\n      \"DIMENSION\": \"M1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the mass of the body\"\n    },\n    {\n      \"SLOT\": \"UP_VELOCITY\",\n      \"KIND\": \"DOF\",\n      \"DIMENSION\": \"L1 T-1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"\n    },\n    {\n      \"SLOT\": \"HEIGHT\",\n      \"KIND\": \"DOF\",\n      \"DIMENSION\": \"L1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the position along the same upward axis\"\n    }\n  ],\n  \"PARAMETERS\": [\n    {\n      \"NAME\": \"g_n\",\n      \"DIMENSION\": \"L1 T-2\",\n      \"SUPPLY\": \"DECLARED\",\n      \"VALUE\": \"9.80665\",\n      \"UNIT\": \"m s-2\",\n      \"OVERRIDABLE\": \"NO\",\n      \"LABEL\": \"the standard acceleration of gravity\"\n    },\n    {\n      \"NAME\": \"h_max\",\n      \"DIMENSION\": \"L1\",\n      \"SUPPLY\": \"AUTHOR\",\n      \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"\n    }\n  ],\n  \"SUMS\": [],\n  \"TERMS\": [\n    {\n      \"TARGET\": \"UP_VELOCITY\",\n      \"SIGN\": \"-\",\n      \"EXPR\": \"MASS*g_n\",\n      \"LABEL\": \"the weight\"\n    }\n  ],\n  \"ASSUMPTIONS\": [\n    {\n      \"NAME\": \"gravity_uniform\",\n      \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\",\n      \"REFS\": [\n        \"HEIGHT\",\n        \"h_max\"\n      ]\n    },\n    {\n      \"NAME\": \"gravity_standard\",\n      \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\",\n      \"REFS\": [\n        \"g_n\"\n      ]\n    },\n    {\n      \"NAME\": \"frame_inertial\",\n      \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\",\n      \"REFS\": [\n        \"HEIGHT\"\n      ]\n    }\n  ],\n  \"BOUNDARIES\": [\n    {\n      \"NAME\": \"gravity_region\",\n      \"PREDICATE\": \"abs({HEIGHT}) < h_max\",\n      \"CONDITION\": \"abs(HEIGHT) < h_max\"\n    }\n  ],\n  \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\",\n  \"NOT_INCLUDED\": [\n    \"No variation of gravity with height or latitude beyond what g_n contains.\",\n    \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\",\n    \"No gravity of bodies other than the Earth.\"\n  ],\n  \"EXCLUDES\": [],\n  \"INTERACTS_WITH\": [\n    {\n      \"WITH\": \"AIR-*\",\n      \"QUESTION_ID\": \"BUOYANCY\",\n      \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\",\n      \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\",\n      \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"\n    }\n  ],\n  \"TEST_BINDINGS\": [\n    {\n      \"NAME\": \"PROJECTILE_2D\",\n      \"TPK\": {\n        \"DOF\": [\n          {\n            \"NAME\": \"t\",\n            \"DIMENSION\": \"T1\"\n          },\n          {\n            \"NAME\": \"x\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"z\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"v_x\",\n            \"DIMENSION\": \"L1 T-1\"\n          },\n          {\n            \"NAME\": \"v_z\",\n            \"DIMENSION\": \"L1 T-1\"\n          }\n        ],\n        \"CONSTANT\": [\n          {\n            \"NAME\": \"m\",\n            \"DIMENSION\": \"M1\"\n          }\n        ],\n        \"LAW\": [\n          {\n            \"NAME\": \"KIN_X\",\n            \"STATEMENT\": \"dx/dt = v_x\",\n            \"REFS\": [\n              \"t\",\n              \"v_x\",\n              \"x\"\n            ],\n            \"ROLE\": \"EOM(x)\",\n            \"EQUATION\": \"D(x,t)=v_x\"\n          },\n          {\n            \"NAME\": \"KIN_Z\",\n            \"STATEMENT\": \"dz/dt = v_z\",\n            \"REFS\": [\n              \"t\",\n              \"v_z\",\n              \"z\"\n            ],\n            \"ROLE\": \"EOM(z)\",\n            \"EQUATION\": \"D(z,t)=v_z\"\n          },\n          {\n            \"NAME\": \"EOM_X\",\n            \"STATEMENT\": \"m dv_x/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_x\"\n            ],\n            \"ROLE\": \"EOM(v_x)\",\n            \"EQUATION\": \"m*D(v_x,t)=0\"\n          },\n          {\n            \"NAME\": \"EOM_Z\",\n            \"STATEMENT\": \"m dv_z/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_z\"\n            ],\n            \"ROLE\": \"EOM(v_z)\",\n            \"EQUATION\": \"m*D(v_z,t)=0\"\n          }\n        ],\n        \"ASSUMPTION\": [\n          {\n            \"NAME\": \"point_mass\",\n            \"PROPOSITION\": \"the body is treated as a point mass\",\n            \"REFS\": [\n              \"m\"\n            ]\n          }\n        ]\n      },\n      \"BIND\": {\n        \"HEIGHT\": [\n          \"z\"\n        ],\n        \"MASS\": [\n          \"m\"\n        ],\n        \"UP_VELOCITY\": [\n          \"v_z\"\n        ]\n      },\n      \"VALUES\": {\n        \"h_max\": {\n          \"VALUE\": \"100\",\n          \"UNIT\": \"m\"\n        }\n      },\n      \"ANSWERS\": {}\n    },\n    {\n      \"NAME\": \"TABLE\",\n      \"TPK\": {\n        \"DOF\": [\n          {\n            \"NAME\": \"t\",\n            \"DIMENSION\": \"T1\"\n          },\n          {\n            \"NAME\": \"x\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"z\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"v_x\",\n            \"DIMENSION\": \"L1 T-1\"\n          },\n          {\n            \"NAME\": \"v_z\",\n            \"DIMENSION\": \"L1 T-1\"\n          }\n        ],\n        \"CONSTANT\": [\n          {\n            \"NAME\": \"m\",\n            \"DIMENSION\": \"M1\"\n          }\n        ],\n        \"LAW\": [\n          {\n            \"NAME\": \"KIN_X\",\n            \"STATEMENT\": \"dx/dt = v_x\",\n            \"REFS\": [\n              \"t\",\n              \"v_x\",\n              \"x\"\n            ],\n            \"ROLE\": \"EOM(x)\",\n            \"EQUATION\": \"D(x,t)=v_x\"\n          },\n          {\n            \"NAME\": \"KIN_Z\",\n            \"STATEMENT\": \"dz/dt = v_z\",\n            \"REFS\": [\n              \"t\",\n              \"v_z\",\n              \"z\"\n            ],\n            \"ROLE\": \"CONSTRAINT\",\n            \"EQUATION\": \"D(z,t)=v_z\"\n          },\n          {\n            \"NAME\": \"EOM_X\",\n            \"STATEMENT\": \"m dv_x/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_x\"\n            ],\n            \"ROLE\": \"EOM(v_x)\",\n            \"EQUATION\": \"m*D(v_x,t)=0\"\n          }\n        ],\n        \"CONSTRAINT\": [\n          {\n            \"NAME\": \"C_Z\",\n            \"TARGET\": \"z\",\n            \"ACTION\": \"FIX\",\n            \"VALUE\": \"0\",\n            \"UNIT\": \"m\",\n            \"STATEMENT\": \"the puck stays on the table top, z = 0\"\n          },\n          {\n            \"NAME\": \"C_VZ\",\n            \"TARGET\": \"v_z\",\n            \"ACTION\": \"FIX\",\n            \"VALUE\": \"0\",\n            \"UNIT\": \"m s-1\",\n            \"STATEMENT\": \"the puck has no vertical velocity\"\n          }\n        ]\n      },\n      \"BIND\": {\n        \"HEIGHT\": [\n          \"z\"\n        ],\n        \"MASS\": [\n          \"m\"\n        ],\n        \"UP_VELOCITY\": [\n          \"v_z\"\n        ]\n      },\n      \"VALUES\": {\n        \"h_max\": {\n          \"VALUE\": \"1\",\n          \"UNIT\": \"m\"\n        }\n      },\n      \"ANSWERS\": {\n        \"FIXED:v_z\": \"YES\"\n      }\n    }\n  ]\n}"
   },
   "expected": "[\"OK\",\"GRAV-UNIFORM\",\"1.0.0\",[[\"MASS\",\"CONSTANT\",\"M1\",1,1],[\"UP_VELOCITY\",\"DOF\",\"L1 T-1\",1,1],[\"HEIGHT\",\"DOF\",\"L1\",1,1]],[[\"g_n\",\"DECLARED\",\"L1 T-2\"],[\"h_max\",\"AUTHOR\",\"L1\"]],[],[[\"UP_VELOCITY\",\"-\",\"MASS*g_n\"]],[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"],[[\"gravity_region\",\"abs(HEIGHT)<h_max\"]],[],[[\"AIR-*\",\"BUOYANCY\"]],[\"PROJECTILE_2D\",\"TABLE\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P05 GRAV pretty-printed: white space outside strings changes nothing"
  },
  {
   "args": {
    "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\": \"T-1 L1\", \"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\",\"GRAV-UNIFORM\",\"1.0.0\",[[\"MASS\",\"CONSTANT\",\"M1\",1,1],[\"UP_VELOCITY\",\"DOF\",\"L1 T-1\",1,1],[\"HEIGHT\",\"DOF\",\"L1\",1,1]],[[\"g_n\",\"DECLARED\",\"L1 T-2\"],[\"h_max\",\"AUTHOR\",\"L1\"]],[],[[\"UP_VELOCITY\",\"-\",\"MASS*g_n\"]],[\"gravity_uniform\",\"gravity_standard\",\"frame_inertial\"],[[\"gravity_region\",\"abs(HEIGHT)<h_max\"]],[],[[\"AIR-*\",\"BUOYANCY\"]],[\"PROJECTILE_2D\",\"TABLE\"]]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P06 a DIMENSION written T-1 L1 is kept normalized"
  },
  {
   "args": {
    "text": {
     "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": [
      {
       "CONDITION": "abs(HEIGHT) < h_max",
       "NAME": "gravity_region",
       "PREDICATE": "abs({HEIGHT}) < h_max"
      }
     ],
     "EXCLUDES": [],
     "ID": "GRAV-UNIFORM",
     "INTERACTS_WITH": [
      {
       "NO_LINE": "No buoyancy: the air's upthrust on the body is not included.",
       "QUESTION": "Does the air's buoyancy (upthrust) act on the body in the system you mean?",
       "QUESTION_ID": "BUOYANCY",
       "WITH": "AIR-*",
       "YES_LINE": "Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it."
      }
     ],
     "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."
     ],
     "PARAMETERS": [
      {
       "DIMENSION": "L1 T-2",
       "LABEL": "the standard acceleration of gravity",
       "NAME": "g_n",
       "OVERRIDABLE": "NO",
       "SUPPLY": "DECLARED",
       "UNIT": "m s-2",
       "VALUE": "9.80665"
      },
      {
       "DIMENSION": "L1",
       "LABEL": "the largest height, above or below the origin, over which the field is taken as uniform",
       "NAME": "h_max",
       "SUPPLY": "AUTHOR"
      }
     ],
     "PREREQUISITES": [
      {
       "DIMENSION": "M1",
       "KIND": "CONSTANT",
       "LABEL": "the mass of the body",
       "MAX": 1,
       "MIN": 1,
       "SLOT": "MASS"
      },
      {
       "DIMENSION": "L1 T-1",
       "KIND": "DOF",
       "LABEL": "the velocity component pointing up; its equation of motion receives the weight",
       "MAX": 1,
       "MIN": 1,
       "SLOT": "UP_VELOCITY"
      },
      {
       "DIMENSION": "L1",
       "KIND": "DOF",
       "LABEL": "the position along the same upward axis",
       "MAX": 1,
       "MIN": 1,
       "SLOT": "HEIGHT"
      }
     ],
     "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",
     "SUMS": [],
     "TERMS": [
      {
       "EXPR": "MASS*g_n",
       "LABEL": "the weight",
       "SIGN": "-",
       "TARGET": "UP_VELOCITY"
      }
     ],
     "TEST_BINDINGS": [
      {
       "ANSWERS": {},
       "BIND": {
        "HEIGHT": [
         "z"
        ],
        "MASS": [
         "m"
        ],
        "UP_VELOCITY": [
         "v_z"
        ]
       },
       "NAME": "PROJECTILE_2D",
       "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"
         }
        ]
       },
       "VALUES": {
        "h_max": {
         "UNIT": "m",
         "VALUE": "100"
        }
       }
      },
      {
       "ANSWERS": {
        "FIXED:v_z": "YES"
       },
       "BIND": {
        "HEIGHT": [
         "z"
        ],
        "MASS": [
         "m"
        ],
        "UP_VELOCITY": [
         "v_z"
        ]
       },
       "NAME": "TABLE",
       "TPK": {
        "CONSTANT": [
         {
          "DIMENSION": "M1",
          "NAME": "m"
         }
        ],
        "CONSTRAINT": [
         {
          "ACTION": "FIX",
          "NAME": "C_Z",
          "STATEMENT": "the puck stays on the table top, z = 0",
          "TARGET": "z",
          "UNIT": "m",
          "VALUE": "0"
         },
         {
          "ACTION": "FIX",
          "NAME": "C_VZ",
          "STATEMENT": "the puck has no vertical velocity",
          "TARGET": "v_z",
          "UNIT": "m s-1",
          "VALUE": "0"
         }
        ],
        "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": "CONSTRAINT",
          "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"
         }
        ]
       },
       "VALUES": {
        "h_max": {
         "UNIT": "m",
         "VALUE": "1"
        }
       }
      }
     ],
     "TITLE": "Uniform gravity at the standard value g_n",
     "VERSION": "1.0.0"
    }
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not a string\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P07 the text is not a string"
  },
  {
   "args": {
    "text_parts": [
     [
      "x",
      262145
     ]
    ]
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is longer than 262144 bytes\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P08 a text of 262145 bytes"
  },
  {
   "args": {
    "text_parts": [
     [
      "\u00e9",
      131073
     ]
    ]
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is longer than 262144 bytes\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P09 131073 two-byte letters: 262146 bytes"
  },
  {
   "args": {
    "text_parts": [
     [
      "[",
      1
     ],
     [
      " ",
      262142
     ],
     [
      "]",
      1
     ]
    ]
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not a JSON object\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P10 exactly 262144 bytes, an array: read, then not an object"
  },
  {
   "args": {
    "text": "{\"ID\": \"MATH\",}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P11 a trailing comma"
  },
  {
   "args": {
    "text": "{\"ID\": NaN}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P12 NaN"
  },
  {
   "args": {
    "text": "{\"ID\": \"MATH\", \"ID\": \"MATH\"}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P13 a duplicate key"
  },
  {
   "args": {
    "text": "{\"caf\\u00e9\": 1, \"cafe\\u0301\": 2}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P14 a duplicate key after NFC"
  },
  {
   "args": {
    "text": "{\"TITLE\": \"a\\ud800b\"}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P15 a lone surrogate escape"
  },
  {
   "args": {
    "text": "\ufeff{}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P16 a byte-order mark before the object"
  },
  {
   "args": {
    "text": "{\"TITLE\": \"a\u0001b\"}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P17 a raw control character in a string"
  },
  {
   "args": {
    "text": "{\"ID\": [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P18 65 nested arrays: depth 65 refused"
  },
  {
   "args": {
    "text": "{\"ID\": [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: missing field VERSION\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P19 64 nested arrays are read; then the first missing field"
  },
  {
   "args": {
    "text": ""
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P20 an empty text"
  },
  {
   "args": {
    "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\"}}], \"LAWS\": [], \"DOF\": []}"
   },
   "expected": "[\"REFUSED\",\"MODULE: unknown field DOF\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P21 an unknown key (the least named)"
  },
  {
   "args": {
    "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.\"}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: missing field TEST_BINDINGS\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P22 a missing key"
  },
  {
   "args": {
    "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\",\"MODULE: ID grav-uniform is not a module ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P23 ID in lower case"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-\", \"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\",\"MODULE: ID GRAV- is not a module ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P24 ID ending in a hyphen"
  },
  {
   "args": {
    "text": "{\"ID\": \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\", \"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\",\"MODULE: ID AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA is not a module ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P25 ID of 33 characters"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.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\",\"MODULE: VERSION 1.0 is not a version\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P26 VERSION of two parts"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.01.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\",\"MODULE: VERSION 1.01.0 is not a version\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P27 VERSION with a leading zero"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"10000.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\",\"MODULE: VERSION 10000.0.0 is not a version\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P28 VERSION with a five-digit part"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \" \\t \", \"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\",\"MODULE: field TITLE is blank\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P29 TITLE blank"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": \"g\\u202en\", \"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\",\"MODULE: field TITLE contains disallowed character U+202E\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P30 TITLE with a bidi override"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.0\", \"TITLE\": 7, \"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\",\"MODULE: field TITLE has the wrong type\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P31 TITLE a number"
  },
  {
   "args": {
    "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\": [\"MASS\"], \"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\",\"MODULE: field PREREQUISITES has the wrong type\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P32 PREREQUISITES holding a string"
  },
  {
   "args": {
    "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\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}], \"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\",\"MODULE: field PREREQUISITES has more than 16 entries\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P33 PREREQUISITES of 17 entries"
  },
  {
   "args": {
    "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\",\"PREREQUISITE:mass: SLOT mass is not a slot name\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P34 a slot name in lower case"
  },
  {
   "args": {
    "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\": \"ENTRY\", \"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\",\"PREREQUISITE:MASS: KIND ENTRY is not DOF or CONSTANT\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P35 KIND not DOF or CONSTANT"
  },
  {
   "args": {
    "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\": \"Q1\", \"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\",\"PREREQUISITE:MASS: DIMENSION Q1 is not a dimension\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P36 a DIMENSION that does not parse"
  },
  {
   "args": {
    "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\": 0, \"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\",\"PREREQUISITE:MASS: MIN is not an integer from 1 to 16\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P37 MIN 0"
  },
  {
   "args": {
    "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\",\"PREREQUISITE:MASS: MIN is not an integer from 1 to 16\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P38 MIN a string"
  },
  {
   "args": {
    "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.0, \"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\",\"PREREQUISITE:MASS: MIN is not an integer from 1 to 16\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P39 MIN written 1.0 (not an integer in the strict reader)"
  },
  {
   "args": {
    "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\": 1e0, \"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\",\"PREREQUISITE:MASS: MAX is not an integer from 1 to 16\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P40 MAX written 1e0"
  },
  {
   "args": {
    "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\": true, \"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\",\"PREREQUISITE:MASS: MIN is not an integer from 1 to 16\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P41 MIN true"
  },
  {
   "args": {
    "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\": 2, \"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\",\"PREREQUISITE:UP_VELOCITY: MIN is greater than MAX\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P42 MIN greater than MAX"
  },
  {
   "args": {
    "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\": 2, \"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\",\"PREREQUISITE:MASS: a CONSTANT slot takes exactly one name\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P43 a CONSTANT slot of MAX 2"
  },
  {
   "args": {
    "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\", \"ROLE\": \"INPUT\"}, {\"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\",\"PREREQUISITE:MASS: unknown field ROLE\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P44 an unknown field in a prerequisite"
  },
  {
   "args": {
    "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}, {\"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\",\"PREREQUISITE:MASS: missing field LABEL\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P45 a prerequisite without LABEL"
  },
  {
   "args": {
    "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\"}, {\"SLOT\": \"MASS\", \"KIND\": \"CONSTANT\", \"DIMENSION\": \"M1\", \"MIN\": 1, \"MAX\": 1, \"LABEL\": \"the mass of the body\"}], \"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\",\"MODULE: duplicate slot MASS\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P46 a duplicate slot"
  },
  {
   "args": {
    "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\",\"PARAMETER:G_N: NAME G_N is not an entry name (an identifier with a lower-case letter)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P47 a parameter name without a lower-case letter"
  },
  {
   "args": {
    "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\": \"FIXED\", \"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\",\"PARAMETER:g_n: SUPPLY FIXED is not DECLARED or AUTHOR\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P48 SUPPLY not DECLARED or AUTHOR"
  },
  {
   "args": {
    "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\", \"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\",\"PARAMETER:g_n: DECLARED requires OVERRIDABLE\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P49 DECLARED without OVERRIDABLE"
  },
  {
   "args": {
    "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\", \"VALUE\": \"100\"}], \"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\",\"PARAMETER:h_max: AUTHOR forbids VALUE\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P50 AUTHOR with a VALUE"
  },
  {
   "args": {
    "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\",\"PARAMETER:g_n: VALUE 9,80665 is not a decimal\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P51 a VALUE that is not a decimal"
  },
  {
   "args": {
    "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-3\", \"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\",\"PARAMETER:g_n: UNIT m s-3 has dimension L1 T-3, not L1 T-2\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P52 a UNIT of another dimension"
  },
  {
   "args": {
    "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/s2\", \"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\",\"PARAMETER:g_n: UNIT m/s2 is not a unit\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P53 a UNIT that does not parse (tpc_units' reason)"
  },
  {
   "args": {
    "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\", \"UNCERTAINTY\": \"-0.1\"}, {\"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\",\"PARAMETER:g_n: UNCERTAINTY -0.1 is negative\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P54 a negative UNCERTAINTY"
  },
  {
   "args": {
    "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\": \"yes\", \"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\",\"PARAMETER:g_n: OVERRIDABLE yes is not YES or NO\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P55 OVERRIDABLE in lower case"
  },
  {
   "args": {
    "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\"}, {\"NAME\": \"g_n\", \"DIMENSION\": \"L1 T-2\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"9.80665\", \"UNIT\": \"m s-2\", \"OVERRIDABLE\": \"NO\", \"LABEL\": \"the standard acceleration of gravity\"}], \"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\",\"MODULE: duplicate parameter g_n\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P56 a duplicate parameter"
  },
  {
   "args": {
    "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\": \"V\", \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:SPEED2: OVER V is not a DOF slot\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P57 a sum over a name that is no slot"
  },
  {
   "args": {
    "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+HEIGHT\"}], \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:SPEED2: EACH names HEIGHT, which is not VELOCITY or a parameter\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P58 a sum naming another name"
  },
  {
   "args": {
    "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\": \"D(VELOCITY,VELOCITY)\"}], \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:SPEED2: EACH uses D\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P59 a sum using D"
  },
  {
   "args": {
    "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\": \"VELOCITY\", \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:VELOCITY: NAME VELOCITY is the name of a slot\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P60 a sum named as a slot"
  },
  {
   "args": {
    "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\": \"MASS\", \"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\",\"TERM:1: TARGET MASS is not a DOF slot\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P61 a term on a CONSTANT slot"
  },
  {
   "args": {
    "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\",\"TERM:1: SIGN * is not + or -\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P62 a SIGN that is neither + nor -"
  },
  {
   "args": {
    "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*\", \"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\",\"TERM:1: EXPR does not parse: unexpected end\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P63 an EXPR that does not parse (tpc_form's reason)"
  },
  {
   "args": {
    "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\",\"TERM:1: EXPR begins with a minus sign; the sign is SIGN's\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P64 an EXPR beginning with a minus sign"
  },
  {
   "args": {
    "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*D(HEIGHT,UP_VELOCITY)\", \"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\",\"TERM:1: EXPR uses D\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P65 an EXPR using D"
  },
  {
   "args": {
    "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\", \"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\",\"TERM:1: EXPR names g, which is not a slot, parameter or sum of this module\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P66 an EXPR naming an unknown name (its own unknown reference)"
  },
  {
   "args": {
    "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\"}, {\"SLOT\": \"OTHER\", \"KIND\": \"DOF\", \"DIMENSION\": \"L1 T-1\", \"MIN\": 1, \"MAX\": 3, \"LABEL\": \"other velocities\"}], \"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)*OTHER\", \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"TERM:1: EXPR names the list slot OTHER outside its own TERM\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P67 an EXPR naming a list slot outside its own TERM"
  },
  {
   "args": {
    "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\", \"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\",\"ASSUMPTION:GRAVITY: NAME GRAVITY is not an entry name (an identifier with a lower-case letter)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P68 an assumption name without a lower-case letter"
  },
  {
   "args": {
    "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\": \"uniform near {MASSES}\", \"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\",\"ASSUMPTION:gravity_uniform: PROPOSITION: {MASSES} is not a slot of this module\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P69 a placeholder naming no slot"
  },
  {
   "args": {
    "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\": \"a brace } here\", \"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\",\"ASSUMPTION:gravity_uniform: PROPOSITION: a brace outside a {SLOT} placeholder\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P70 a stray closing brace"
  },
  {
   "args": {
    "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\": \"uniform over {HEIGHT\", \"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\",\"ASSUMPTION:gravity_uniform: PROPOSITION: a brace outside a {SLOT} placeholder\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P71 an unclosed placeholder"
  },
  {
   "args": {
    "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\", \"g\"]}, {\"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\",\"ASSUMPTION:gravity_uniform: REFS g is not a slot or parameter of this module\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P72 REFS naming no slot or parameter"
  },
  {
   "args": {
    "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\": [\"h_max\", \"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\",\"ASSUMPTION:gravity_uniform: field REFS has duplicate entries\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P73 duplicate REFS"
  },
  {
   "args": {
    "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) <\"}], \"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\",\"BOUNDARY:gravity_region: CONDITION does not parse: unexpected end\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P74 a CONDITION that does not parse"
  },
  {
   "args": {
    "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\": \"VELOCITY > 0 and mu_air != 0\"}], \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"BOUNDARY:drag_quadratic_regime: CONDITION names the list slot VELOCITY outside a sum\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P75 a CONDITION naming a list slot outside a sum"
  },
  {
   "args": {
    "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_min\"}], \"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\",\"BOUNDARY:gravity_region: CONDITION names h_min, which is not a slot, parameter or sum of this module\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P76 a CONDITION naming an unknown name"
  },
  {
   "args": {
    "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\": \"g_n\", \"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\",\"MODULE: duplicate entry name g_n\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P77 an assumption named as a parameter"
  },
  {
   "args": {
    "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\": \"\", \"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\",\"MODULE: field NOT_CHOSEN is blank\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P78 NOT_CHOSEN blank"
  },
  {
   "args": {
    "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\": [\"a\", \"  \"], \"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\",\"MODULE: NOT_INCLUDED 2 is blank\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P79 a blank NOT_INCLUDED line"
  },
  {
   "args": {
    "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\": [\"a\", \"a\"], \"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\",\"MODULE: field NOT_INCLUDED has duplicate entries\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P80 duplicate NOT_INCLUDED lines"
  },
  {
   "args": {
    "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\": [\"a\", \"b\\u200bc\"], \"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\",\"MODULE: field NOT_INCLUDED contains disallowed character U+200B\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P81 a zero-width space in a NOT_INCLUDED line"
  },
  {
   "args": {
    "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*\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: EXCLUDES AIR* is not a module ID or pattern\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P82 an EXCLUDES pattern without its hyphen"
  },
  {
   "args": {
    "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-QUADRATIC\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: EXCLUDES AIR-QUADRATIC matches the module's own ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P83 EXCLUDES naming the module itself"
  },
  {
   "args": {
    "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-*\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: EXCLUDES AIR-* matches the module's own ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P84 an EXCLUDES pattern matching the module itself"
  },
  {
   "args": {
    "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\": \"GRAV-*\", \"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\",\"INTERACTS_WITH:1: WITH GRAV-* matches the module's own ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P85 INTERACTS_WITH matching the module itself"
  },
  {
   "args": {
    "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\",\"INTERACTS_WITH:1: QUESTION_ID buoyancy is not a question ID\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P86 a question ID in lower case"
  },
  {
   "args": {
    "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.\"}, {\"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\",\"MODULE: duplicate question BUOYANCY\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P87 a duplicate question"
  },
  {
   "args": {
    "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\": []}"
   },
   "expected": "[\"REFUSED\",\"MODULE: field TEST_BINDINGS is empty (a module declares at least one test binding)\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P88 no test binding"
  },
  {
   "args": {
    "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\": \"B0\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B1\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B2\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B3\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B4\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B5\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B6\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B7\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}, {\"NAME\": \"B8\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\",\"MODULE: field TEST_BINDINGS has more than 8 entries\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P89 nine test bindings"
  },
  {
   "args": {
    "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\": [\"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\",\"TEST_BINDING:PROJECTILE_2D: TPK fails T1: LAW:EOM_Z: EQUATION names m, which is not in REFS\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P90 a test binding whose TPK fails T1 (T1's first problem)"
  },
  {
   "args": {
    "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\": {\"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\",\"TEST_BINDING:PROJECTILE_2D: BIND: slot HEIGHT is not bound\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P91 a test binding with a slot unbound"
  },
  {
   "args": {
    "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\"], \"WEIGHT\": [\"m\"]}, \"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\"], \"WEIGHT\": [\"m\"]}, \"VALUES\": {\"h_max\": {\"VALUE\": \"1\", \"UNIT\": \"m\"}}, \"ANSWERS\": {\"FIXED:v_z\": \"YES\"}}]}"
   },
   "expected": "[\"REFUSED\",\"TEST_BINDING:PROJECTILE_2D: BIND: unknown slot WEIGHT\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P92 a test binding with an unknown slot"
  },
  {
   "args": {
    "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\"}, \"g\": {}}, \"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\",\"TEST_BINDING:PROJECTILE_2D: VALUES: unknown parameter g\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P93 a test binding with an unknown parameter"
  },
  {
   "args": {
    "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\"}}, \"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\",\"TEST_BINDING:PROJECTILE_2D: VALUES: h_max: VALUE requires UNIT\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P94 a test binding value without UNIT"
  },
  {
   "args": {
    "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\",\"TEST_BINDING:TABLE: ANSWERS: FIXED:v z is not a question\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P95 an answer key that is no question"
  },
  {
   "args": {
    "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\": {\"BUOYANCY\": \"yes\"}}, {\"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\",\"TEST_BINDING:PROJECTILE_2D: ANSWERS: BUOYANCY is not YES or NO\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P96 an answer that is neither YES nor NO"
  },
  {
   "args": {
    "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\"}}, {\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: duplicate test binding PROJECTILE_2D\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P97 a duplicate test binding"
  },
  {
   "args": {
    "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\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\",\"TEST_BINDING:projectile: NAME projectile is not a binding name\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P98 a binding name in lower case"
  },
  {
   "args": {
    "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\": {}}], \"LAWS\": []}"
   },
   "expected": "[\"REFUSED\",\"MODULE: unknown field LAWS\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P99 LAWS key: a module emits no law (B2)"
  },
  {
   "args": {
    "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\": \"D(HEIGHT,UP_VELOCITY) < 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\",\"BOUNDARY:gravity_region: CONDITION does not parse: D is not permitted in a CONDITION at 1\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P100 a CONDITION using D: tpc_form's own refusal (S53, F-6)"
  },
  {
   "args": {
    "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\", \"UNCERTAINTY\": \"0.1.2\"}, {\"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\",\"PARAMETER:g_n: UNCERTAINTY 0.1.2 is not a decimal\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P101 an UNCERTAINTY that is not a decimal"
  },
  {
   "args": {
    "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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:speed2: NAME speed2 is not a slot name\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P102 a SUM NAME that is not a slot name"
  },
  {
   "args": {
    "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^\"}], \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"SUM:SPEED2: EACH does not parse: ^ takes an integer or a parenthesized rational exponent at 9\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P103 a SUM EACH that does not parse"
  },
  {
   "args": {
    "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\"}, {\"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: duplicate sum SPEED2\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P104 a duplicate sum"
  },
  {
   "args": {
    "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\", \"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\": {}}]}"
   },
   "expected": "[\"REFUSED\",\"MODULE: field EXCLUDES has duplicate entries\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P105 duplicate EXCLUDES"
  },
  {
   "args": {
    "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\",\"INTERACTS_WITH:1: WITH air-* is not a module ID or pattern\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P106 a WITH that is no ID or pattern"
  },
  {
   "args": {
    "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({HIGHT}) < 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\",\"BOUNDARY:gravity_region: PREDICATE: {HIGHT} is not a slot of this module\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P107 a PREDICATE placeholder naming no slot"
  },
  {
   "args": {
    "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\",\"TEST_BINDING:PROJECTILE_2D: BIND: slot MASS has the wrong type\"]",
   "fn": "module_parse",
   "hand_checked": true,
   "name": "P108 a test binding's BIND slot of the wrong type"
  },
  {
   "args": {
    "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\",\"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G01 GRAV-UNIFORM 1.0.0"
  },
  {
   "args": {
    "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\",\"6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G02 AIR-QUADRATIC 1.0.0"
  },
  {
   "args": {
    "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\",\"5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G03 AIR-LINEAR 1.0.0"
  },
  {
   "args": {
    "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\",\"8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G04 MATH 1.0.0"
  },
  {
   "args": {
    "text": "{\n  \"ID\": \"GRAV-UNIFORM\",\n  \"VERSION\": \"1.0.0\",\n  \"TITLE\": \"Uniform gravity at the standard value g_n\",\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\",\n  \"PREREQUISITES\": [\n    {\n      \"SLOT\": \"MASS\",\n      \"KIND\": \"CONSTANT\",\n      \"DIMENSION\": \"M1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the mass of the body\"\n    },\n    {\n      \"SLOT\": \"UP_VELOCITY\",\n      \"KIND\": \"DOF\",\n      \"DIMENSION\": \"L1 T-1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the velocity component pointing up; its equation of motion receives the weight\"\n    },\n    {\n      \"SLOT\": \"HEIGHT\",\n      \"KIND\": \"DOF\",\n      \"DIMENSION\": \"L1\",\n      \"MIN\": 1,\n      \"MAX\": 1,\n      \"LABEL\": \"the position along the same upward axis\"\n    }\n  ],\n  \"PARAMETERS\": [\n    {\n      \"NAME\": \"g_n\",\n      \"DIMENSION\": \"L1 T-2\",\n      \"SUPPLY\": \"DECLARED\",\n      \"VALUE\": \"9.80665\",\n      \"UNIT\": \"m s-2\",\n      \"OVERRIDABLE\": \"NO\",\n      \"LABEL\": \"the standard acceleration of gravity\"\n    },\n    {\n      \"NAME\": \"h_max\",\n      \"DIMENSION\": \"L1\",\n      \"SUPPLY\": \"AUTHOR\",\n      \"LABEL\": \"the largest height, above or below the origin, over which the field is taken as uniform\"\n    }\n  ],\n  \"SUMS\": [],\n  \"TERMS\": [\n    {\n      \"TARGET\": \"UP_VELOCITY\",\n      \"SIGN\": \"-\",\n      \"EXPR\": \"MASS*g_n\",\n      \"LABEL\": \"the weight\"\n    }\n  ],\n  \"ASSUMPTIONS\": [\n    {\n      \"NAME\": \"gravity_uniform\",\n      \"PROPOSITION\": \"the gravitational field is uniform over the region abs({HEIGHT}) < h_max\",\n      \"REFS\": [\n        \"HEIGHT\",\n        \"h_max\"\n      ]\n    },\n    {\n      \"NAME\": \"gravity_standard\",\n      \"PROPOSITION\": \"the local gravitational acceleration equals the conventional standard value g_n\",\n      \"REFS\": [\n        \"g_n\"\n      ]\n    },\n    {\n      \"NAME\": \"frame_inertial\",\n      \"PROPOSITION\": \"the frame in which {HEIGHT} is measured is treated as inertial\",\n      \"REFS\": [\n        \"HEIGHT\"\n      ]\n    }\n  ],\n  \"BOUNDARIES\": [\n    {\n      \"NAME\": \"gravity_region\",\n      \"PREDICATE\": \"abs({HEIGHT}) < h_max\",\n      \"CONDITION\": \"abs(HEIGHT) < h_max\"\n    }\n  ],\n  \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\",\n  \"NOT_INCLUDED\": [\n    \"No variation of gravity with height or latitude beyond what g_n contains.\",\n    \"No Earth rotation (Coriolis or centrifugal force) beyond what g_n contains.\",\n    \"No gravity of bodies other than the Earth.\"\n  ],\n  \"EXCLUDES\": [],\n  \"INTERACTS_WITH\": [\n    {\n      \"WITH\": \"AIR-*\",\n      \"QUESTION_ID\": \"BUOYANCY\",\n      \"QUESTION\": \"Does the air's buoyancy (upthrust) act on the body in the system you mean?\",\n      \"YES_LINE\": \"Buoyancy acts (your answer): no module adds it; it acts in this kernel only where one of your own laws states it.\",\n      \"NO_LINE\": \"No buoyancy: the air's upthrust on the body is not included.\"\n    }\n  ],\n  \"TEST_BINDINGS\": [\n    {\n      \"NAME\": \"PROJECTILE_2D\",\n      \"TPK\": {\n        \"DOF\": [\n          {\n            \"NAME\": \"t\",\n            \"DIMENSION\": \"T1\"\n          },\n          {\n            \"NAME\": \"x\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"z\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"v_x\",\n            \"DIMENSION\": \"L1 T-1\"\n          },\n          {\n            \"NAME\": \"v_z\",\n            \"DIMENSION\": \"L1 T-1\"\n          }\n        ],\n        \"CONSTANT\": [\n          {\n            \"NAME\": \"m\",\n            \"DIMENSION\": \"M1\"\n          }\n        ],\n        \"LAW\": [\n          {\n            \"NAME\": \"KIN_X\",\n            \"STATEMENT\": \"dx/dt = v_x\",\n            \"REFS\": [\n              \"t\",\n              \"v_x\",\n              \"x\"\n            ],\n            \"ROLE\": \"EOM(x)\",\n            \"EQUATION\": \"D(x,t)=v_x\"\n          },\n          {\n            \"NAME\": \"KIN_Z\",\n            \"STATEMENT\": \"dz/dt = v_z\",\n            \"REFS\": [\n              \"t\",\n              \"v_z\",\n              \"z\"\n            ],\n            \"ROLE\": \"EOM(z)\",\n            \"EQUATION\": \"D(z,t)=v_z\"\n          },\n          {\n            \"NAME\": \"EOM_X\",\n            \"STATEMENT\": \"m dv_x/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_x\"\n            ],\n            \"ROLE\": \"EOM(v_x)\",\n            \"EQUATION\": \"m*D(v_x,t)=0\"\n          },\n          {\n            \"NAME\": \"EOM_Z\",\n            \"STATEMENT\": \"m dv_z/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_z\"\n            ],\n            \"ROLE\": \"EOM(v_z)\",\n            \"EQUATION\": \"m*D(v_z,t)=0\"\n          }\n        ],\n        \"ASSUMPTION\": [\n          {\n            \"NAME\": \"point_mass\",\n            \"PROPOSITION\": \"the body is treated as a point mass\",\n            \"REFS\": [\n              \"m\"\n            ]\n          }\n        ]\n      },\n      \"BIND\": {\n        \"HEIGHT\": [\n          \"z\"\n        ],\n        \"MASS\": [\n          \"m\"\n        ],\n        \"UP_VELOCITY\": [\n          \"v_z\"\n        ]\n      },\n      \"VALUES\": {\n        \"h_max\": {\n          \"VALUE\": \"100\",\n          \"UNIT\": \"m\"\n        }\n      },\n      \"ANSWERS\": {}\n    },\n    {\n      \"NAME\": \"TABLE\",\n      \"TPK\": {\n        \"DOF\": [\n          {\n            \"NAME\": \"t\",\n            \"DIMENSION\": \"T1\"\n          },\n          {\n            \"NAME\": \"x\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"z\",\n            \"DIMENSION\": \"L1\"\n          },\n          {\n            \"NAME\": \"v_x\",\n            \"DIMENSION\": \"L1 T-1\"\n          },\n          {\n            \"NAME\": \"v_z\",\n            \"DIMENSION\": \"L1 T-1\"\n          }\n        ],\n        \"CONSTANT\": [\n          {\n            \"NAME\": \"m\",\n            \"DIMENSION\": \"M1\"\n          }\n        ],\n        \"LAW\": [\n          {\n            \"NAME\": \"KIN_X\",\n            \"STATEMENT\": \"dx/dt = v_x\",\n            \"REFS\": [\n              \"t\",\n              \"v_x\",\n              \"x\"\n            ],\n            \"ROLE\": \"EOM(x)\",\n            \"EQUATION\": \"D(x,t)=v_x\"\n          },\n          {\n            \"NAME\": \"KIN_Z\",\n            \"STATEMENT\": \"dz/dt = v_z\",\n            \"REFS\": [\n              \"t\",\n              \"v_z\",\n              \"z\"\n            ],\n            \"ROLE\": \"CONSTRAINT\",\n            \"EQUATION\": \"D(z,t)=v_z\"\n          },\n          {\n            \"NAME\": \"EOM_X\",\n            \"STATEMENT\": \"m dv_x/dt = 0\",\n            \"REFS\": [\n              \"m\",\n              \"t\",\n              \"v_x\"\n            ],\n            \"ROLE\": \"EOM(v_x)\",\n            \"EQUATION\": \"m*D(v_x,t)=0\"\n          }\n        ],\n        \"CONSTRAINT\": [\n          {\n            \"NAME\": \"C_Z\",\n            \"TARGET\": \"z\",\n            \"ACTION\": \"FIX\",\n            \"VALUE\": \"0\",\n            \"UNIT\": \"m\",\n            \"STATEMENT\": \"the puck stays on the table top, z = 0\"\n          },\n          {\n            \"NAME\": \"C_VZ\",\n            \"TARGET\": \"v_z\",\n            \"ACTION\": \"FIX\",\n            \"VALUE\": \"0\",\n            \"UNIT\": \"m s-1\",\n            \"STATEMENT\": \"the puck has no vertical velocity\"\n          }\n        ]\n      },\n      \"BIND\": {\n        \"HEIGHT\": [\n          \"z\"\n        ],\n        \"MASS\": [\n          \"m\"\n        ],\n        \"UP_VELOCITY\": [\n          \"v_z\"\n        ]\n      },\n      \"VALUES\": {\n        \"h_max\": {\n          \"VALUE\": \"1\",\n          \"UNIT\": \"m\"\n        }\n      },\n      \"ANSWERS\": {\n        \"FIXED:v_z\": \"YES\"\n      }\n    }\n  ]\n}"
   },
   "computed": "digests by existing TPC-PY functions over literal data",
   "expected": "[\"OK\",\"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G05 white space outside strings: one digest"
  },
  {
   "args": {
    "text": "{\"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\"}}], \"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.\"}], \"EXCLUDES\": [], \"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.\"], \"NOT_CHOSEN\": \"No gravity: no weight acts on any DOF.\", \"BOUNDARIES\": [{\"NAME\": \"gravity_region\", \"PREDICATE\": \"abs({HEIGHT}) < h_max\", \"CONDITION\": \"abs(HEIGHT) < h_max\"}], \"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\"]}], \"TERMS\": [{\"TARGET\": \"UP_VELOCITY\", \"SIGN\": \"-\", \"EXPR\": \"MASS*g_n\", \"LABEL\": \"the weight\"}], \"SUMS\": [], \"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\"}], \"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\"}], \"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\", \"TITLE\": \"Uniform gravity at the standard value g_n\", \"VERSION\": \"1.0.0\", \"ID\": \"GRAV-UNIFORM\"}"
   },
   "computed": "digests by existing TPC-PY functions over literal data",
   "expected": "[\"OK\",\"24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G06 key order: one digest"
  },
  {
   "args": {
    "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\": \"T-1 L1\", \"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.806650\", \"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\": \"1e2\", \"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\",\"e6b2b225f3b30f0c656af0386bebcb56e4a28982ebe8c88dfb26b3742f166173\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G07 a DIMENSION, decimal and forms spelled otherwise: another digest (verbatim, S49)"
  },
  {
   "args": {
    "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\",\"5be3923c28dc8f8ff910b033c2d17154f267f2a20fdb32c74a07293a37dfe338\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G08 GRAV-UNIFORM 1.1.0 (TITLE revised)"
  },
  {
   "args": {
    "text": "{\"ID\": \"GRAV-UNIFORM\", \"VERSION\": \"1.0.1\", \"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\",\"79773d1e2e990472793ca09ef95c1b82de9e37980c82553662b7be97d79276ba\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G09 the same text at another VERSION: another digest"
  },
  {
   "args": {
    "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\",\"29be4dc5c4d46cd815ea17a7451f87b21c73e863cb0643b3f4bfa77f3a56b90a\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G10 white space inside a string is text: another digest"
  },
  {
   "args": {
    "text": "{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X, caf\\u00e9\", \"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\",\"7b356f31b5113fffc21e6818bb39ccc7e1bd2c0d3b80b50862ac6dc6204e1b16\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G11 a precomposed letter"
  },
  {
   "args": {
    "text": "{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test interaction X, cafe\\u0301\", \"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\",\"7b356f31b5113fffc21e6818bb39ccc7e1bd2c0d3b80b50862ac6dc6204e1b16\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G12 the decomposed spelling: one digest (NFC)"
  },
  {
   "args": {
    "text": "{\"ID\": 1"
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_digest",
   "hand_checked": true,
   "name": "G13 a refused text: module_parse's refusal"
  },
  {
   "args": {
    "text": "{\"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\"}}]}"
   },
   "computed": "digests by existing TPC-PY functions over literal data",
   "expected": "[\"OK\",\"636bb7a121552e079d2d49b3e6a5899a1dead386a40c113a871905081c7be628\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G14 GRAV-UNIFORM 1.2.0"
  },
  {
   "args": {
    "text": "{\"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\"}}]}"
   },
   "computed": "digests by existing TPC-PY functions over literal data",
   "expected": "[\"OK\",\"49dbf227e03cd8cd0a5ddbff751e6cbceca6d92fef564b1f63d6c73287153718\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G15 GRAV-UNIFORM 2.0.0"
  },
  {
   "args": {
    "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\",\"b6b691673ac7755590314caeba64e2cb06e1357cb67cfb3b55d4cb0581317657\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G16 TEST-PUSH 1.0.0"
  },
  {
   "args": {
    "text": "{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test \\\"X\\\", a\\\\b\\tc\", \"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\": [\"one line\\nand the next\"], \"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\",\"a5a689f0480a191b9f50a8cf17cc2871cafd12ed719a733a24a1b458c28430cb\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G17 a quotation mark, a backslash, a TAB and an LF inside strings: escaped (section 4)"
  },
  {
   "args": {
    "text": "{\"ID\": \"TEST-X\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test \\\"X\\\", a\\\\b\\tc\", \"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\": [\"one line\\r\\nand the next\"], \"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\",\"a5a689f0480a191b9f50a8cf17cc2871cafd12ed719a733a24a1b458c28430cb\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G18 CRLF inside a string: the digest of LF (2.5)"
  },
  {
   "args": {
    "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\": [\"h_max\", \"HEIGHT\"]}, {\"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\",\"4ca5c70f40cc03988c3b934c3a88043d13c6c0bf16451b6a912720ea9bbf1b1b\"]",
   "fn": "module_digest",
   "hand_checked": false,
   "name": "G19 REFS in another order: another digest (lists keep the author's order)"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"OK\",[[\"SLOT\",\"MASS\",[\"m\"]],[\"SLOT\",\"UP_VELOCITY\",[\"v_z\"]],[\"SLOT\",\"HEIGHT\",[\"z\"]]],[[\"PARAMETER\",\"g_n\",\"DECLARED\",\"9.80665\",\"m s-2\",\"\"],[\"PARAMETER\",\"h_max\",\"AUTHOR\",\"100\",\"m\",\"\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N01 GRAV bound on the projectile"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {}
    }
   },
   "expected": "[\"OK\",[[\"SLOT\",\"MASS\",[\"m\"]],[\"SLOT\",\"UP_VELOCITY\",[\"v_z\"]],[\"SLOT\",\"HEIGHT\",[\"z\"]]],[[\"PARAMETER\",\"g_n\",\"DECLARED\",\"9.80665\",\"m s-2\",\"\"],[\"PARAMETER\",\"h_max\",\"SYMBOLIC\",\"\",\"\",\"\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N02 an author value left symbolic"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNCERTAINTY": "0.5",
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"OK\",[[\"SLOT\",\"MASS\",[\"m\"]],[\"SLOT\",\"UP_VELOCITY\",[\"v_z\"]],[\"SLOT\",\"HEIGHT\",[\"z\"]]],[[\"PARAMETER\",\"g_n\",\"DECLARED\",\"9.80665\",\"m s-2\",\"\"],[\"PARAMETER\",\"h_max\",\"AUTHOR\",\"100\",\"m\",\"0.5\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N03 an author value with its uncertainty"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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)=-m*g_n",
       "NAME": "EOM_Z",
       "REFS": [
        "g_n",
        "m",
        "t",
        "v_z"
       ],
       "ROLE": "EOM(v_z)",
       "STATEMENT": "x"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BASE: the TPK fails T1: LAW:EOM_Z: REFS g_n does not resolve\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N04 a base TPK failing T1"
  },
  {
   "args": {
    "bind": [
     [
      "m"
     ]
    ],
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: not an object\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N05 bind not an object"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "SPEED": [
      "v_x"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: unknown slot SPEED\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N06 an unknown slot"
  },
  {
   "args": {
    "bind": {
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot HEIGHT is not bound\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N07 a slot unbound (declared order)"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": "m",
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot MASS has the wrong type\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N08 a slot bound to a string"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot MASS takes from 1 to 1 names, not 0\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N09 a slot bound to no name"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m",
      "m2"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot MASS takes from 1 to 1 names, not 2\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N10 a scalar slot bound to two names"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "x"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot MASS: x is not a CONSTANT of the TPK\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N11 a CONSTANT slot bound to a DOF"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "m"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot UP_VELOCITY: m is not a DOF of the TPK\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N12 a DOF slot bound to a CONSTANT"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot UP_VELOCITY: z has dimension L1, not L1 T-1\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N13 a DOF of another dimension"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "w"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot UP_VELOCITY: w is not a DOF of the TPK\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N14 a name the TPK lacks"
  },
  {
   "args": {
    "bind": {
     "VELOCITY": [
      "v_z",
      "v_x"
     ]
    },
    "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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "A_ref": {},
     "C_d": {},
     "L_ref": {}
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot VELOCITY: the names are not in code point order without repeats\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N15 list names out of code point order"
  },
  {
   "args": {
    "bind": {
     "VELOCITY": [
      "v_x",
      "v_x"
     ]
    },
    "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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "A_ref": {},
     "C_d": {},
     "L_ref": {}
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot VELOCITY: the names are not in code point order without repeats\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N16 list names repeated"
  },
  {
   "args": {
    "bind": {
     "VELOCITY": [
      "a",
      "b",
      "c",
      "d"
     ]
    },
    "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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "A_ref": {},
     "C_d": {},
     "L_ref": {}
    }
   },
   "expected": "[\"REFUSED\",\"BIND: slot VELOCITY takes from 1 to 3 names, not 4\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N17 a list slot of four names"
  },
  {
   "args": {
    "bind": {
     "VELOCITY": [
      "v_x",
      "v_z"
     ]
    },
    "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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "A_ref": {},
     "C_d": {},
     "L_ref": {}
    }
   },
   "expected": "[\"OK\",[[\"SLOT\",\"VELOCITY\",[\"v_x\",\"v_z\"]]],[[\"PARAMETER\",\"rho_air\",\"DECLARED\",\"1.225\",\"kg m-3\",\"\"],[\"PARAMETER\",\"mu_air\",\"DECLARED\",\"1.7894e-5\",\"Pa s\",\"\"],[\"PARAMETER\",\"C_d\",\"SYMBOLIC\",\"\",\"\",\"\"],[\"PARAMETER\",\"A_ref\",\"SYMBOLIC\",\"\",\"\",\"\"],[\"PARAMETER\",\"L_ref\",\"SYMBOLIC\",\"\",\"\",\"\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N18 a list slot bound"
  },
  {
   "args": {
    "bind": {
     "PULLED": [
      "v_x"
     ],
     "PUSHED": [
      "v_x"
     ]
    },
    "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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "F_a": {},
     "F_b": {}
    }
   },
   "expected": "[\"REFUSED\",\"BIND: v_x is bound to two slots, PUSHED and PULLED\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N19 one name in two slots"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": []
   },
   "expected": "[\"REFUSED\",\"VALUES: not an object\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N20 values not an object"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "g": {},
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: unknown parameter g\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N21 an unknown parameter"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "g_n": {
      "UNIT": "m s-2",
      "VALUE": "9.81"
     },
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: g_n is not OVERRIDABLE\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N22 a value for a parameter that is not OVERRIDABLE"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {}
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max is author supplied: give a value, or {} for a symbolic constant\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N23 an author parameter without a value"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": "100"
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max has the wrong type\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N24 a value that is not an object"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: VALUE requires UNIT\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N25 VALUE without UNIT"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNIT requires VALUE\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N26 UNIT without VALUE"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNCERTAINTY": "1"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNCERTAINTY requires VALUE\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N27 UNCERTAINTY alone"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "NOTE": "x",
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: unknown field NOTE\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N28 an unknown field in a value"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "1OO"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: VALUE 1OO is not a decimal\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N29 a VALUE that is not a decimal"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "s",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNIT s has dimension T1, not L1\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N30 a UNIT of another dimension"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "furlong",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNIT furlong: furlong is not a unit symbol\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N31 a UNIT that does not parse (tpc_units' reason)"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNCERTAINTY": "-1",
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNCERTAINTY -1 is negative\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N32 a negative UNCERTAINTY"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": 100
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: field VALUE has the wrong type\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N33 a VALUE given as a number"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "1\u202e00"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: field VALUE contains disallowed character U+202E\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N34 a bidi override in a VALUE"
  },
  {
   "args": {
    "bind": {},
    "text": "{\"ID\": \"TEST-OVR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: an overridable declared value\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_loc\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"2\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"YES\", \"LABEL\": \"a local factor\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No local factor.\", \"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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "k_loc": {
      "UNIT": "1",
      "VALUE": "3"
     }
    }
   },
   "expected": "[\"OK\",[],[[\"PARAMETER\",\"k_loc\",\"OVERRIDDEN\",\"3\",\"1\",\"\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N35 an OVERRIDABLE value overridden"
  },
  {
   "args": {
    "bind": {},
    "text": "{\"ID\": \"TEST-OVR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: an overridable declared value\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_loc\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"2\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"YES\", \"LABEL\": \"a local factor\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No local factor.\", \"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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {}
   },
   "expected": "[\"OK\",[],[[\"PARAMETER\",\"k_loc\",\"DECLARED\",\"2\",\"1\",\"\"]]]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N36 an OVERRIDABLE value kept"
  },
  {
   "args": {
    "bind": {},
    "text": "{\"ID\": \"TEST-OVR\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: an overridable declared value\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [{\"NAME\": \"k_loc\", \"DIMENSION\": \"1\", \"SUPPLY\": \"DECLARED\", \"VALUE\": \"2\", \"UNIT\": \"1\", \"OVERRIDABLE\": \"YES\", \"LABEL\": \"a local factor\"}], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No local factor.\", \"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\": {}}]}",
    "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"
      }
     ]
    },
    "values": {
     "k_loc": {}
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: k_loc: an override needs VALUE and UNIT\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N37 an empty override"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "text": "{",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"MODULE: the text is not JSON (RFC 8259, strict)\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N38 a module text that is not JSON"
  },
  {
   "args": {
    "bind": {
     "HEIGHT": [
      "z"
     ],
     "MASS": [
      "m"
     ],
     "UP_VELOCITY": [
      "v_z"
     ]
    },
    "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\"}}]}",
    "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"
      }
     ]
    },
    "values": {
     "h_max": {
      "UNCERTAINTY": "x",
      "UNIT": "m",
      "VALUE": "100"
     }
    }
   },
   "expected": "[\"REFUSED\",\"VALUES: h_max: UNCERTAINTY x is not a decimal\"]",
   "fn": "module_bind",
   "hand_checked": true,
   "name": "N39 an author UNCERTAINTY that is not a decimal (RV F-9)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"229430000c54914b08e179f1e62169eb90b4f41ae3c779845f6ce8184bd46f57\"],[\"COMPOSED\",[[\"EOM_Z\",\"m*D(v_z,t)=-m*g_n\"]]],[\"EMITTED\",[[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X01 GRAV-UNIFORM on the projectile: the weight composed into EOM_Z"
  },
  {
   "args": {
    "claims": [
     {
      "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"74c4923d2d9d63a36635262cd33faa26c08059a986a49790d961e1dde87f217a\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x\"],[\"EOM_Z\",\"m*D(v_z,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_z\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"C_d\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"A_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"L_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_cd_constant\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_lift\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_magnus\",[\"AIR-QUADRATIC 1.0.0\"]],[\"BOUNDARY\",\"drag_quadratic_regime\",[\"AIR-QUADRATIC 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X02 AIR-QUADRATIC: one term per member, the speed a sum"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "VELOCITY": [
        "v_x",
        "v_z"
       ]
      },
      "DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
      "ID": "AIR-LINEAR",
      "VALUES": {
       "R_s": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cbef6a230fc42e469f541576f1bfb13111deac176d50f7b2ab25bbaf2dfac92a\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-6*pi_c*mu_air*R_s*v_x\"],[\"EOM_Z\",\"m*D(v_z,t)=-6*pi_c*mu_air*R_s*v_z\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"pi_c\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"R_s\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"drag_sphere\",[\"AIR-LINEAR 1.0.0\"]],[\"BOUNDARY\",\"drag_linear_regime\",[\"AIR-LINEAR 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X03 AIR-LINEAR"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"bfa19e4984e629b3bbf38f3a21b537aa9d84858468072fe660b7bce10919bf1c\"],[\"COMPOSED\",[]],[\"EMITTED\",[[\"CONSTANT\",\"pi_c\",[\"MATH 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X04 MATH: a constant only; no structure check needed"
  },
  {
   "args": {
    "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"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cdeb4cce4d249afc54d6ed3ecac471160ea56d43dcd55211b681edf1676ec034\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x\"],[\"EOM_Z\",\"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\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"C_d\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"A_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"L_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_cd_constant\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_lift\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_magnus\",[\"AIR-QUADRATIC 1.0.0\"]],[\"BOUNDARY\",\"drag_quadratic_regime\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X05 GRAV and AIR-QUADRATIC, buoyancy NO: terms in module-ID order"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cdeb4cce4d249afc54d6ed3ecac471160ea56d43dcd55211b681edf1676ec034\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x\"],[\"EOM_Z\",\"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\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"C_d\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"A_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"L_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_cd_constant\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_lift\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_magnus\",[\"AIR-QUADRATIC 1.0.0\"]],[\"BOUNDARY\",\"drag_quadratic_regime\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X06 the other selection order: one D(TPK)"
  },
  {
   "args": {
    "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"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cdeb4cce4d249afc54d6ed3ecac471160ea56d43dcd55211b681edf1676ec034\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_x^2+v_z^2)*v_x\"],[\"EOM_Z\",\"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\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"C_d\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"A_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"L_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_cd_constant\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_lift\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_magnus\",[\"AIR-QUADRATIC 1.0.0\"]],[\"BOUNDARY\",\"drag_quadratic_regime\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X07 buoyancy YES changes no expansion (RD-MS-7)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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_expand",
   "hand_checked": true,
   "name": "X08 buoyancy not answered"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "VELOCITY": [
        "v_x",
        "v_z"
       ]
      },
      "DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
      "ID": "AIR-LINEAR",
      "VALUES": {
       "R_s": {}
      },
      "VERSION": "1.0.0"
     },
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cbef6a230fc42e469f541576f1bfb13111deac176d50f7b2ab25bbaf2dfac92a\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-6*pi_c*mu_air*R_s*v_x\"],[\"EOM_Z\",\"m*D(v_z,t)=-6*pi_c*mu_air*R_s*v_z\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"pi_c\",[\"AIR-LINEAR 1.0.0\",\"MATH 1.0.0\"]],[\"CONSTANT\",\"R_s\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"drag_sphere\",[\"AIR-LINEAR 1.0.0\"]],[\"BOUNDARY\",\"drag_linear_regime\",[\"AIR-LINEAR 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X09 AIR-LINEAR and MATH: pi_c emitted identically merges"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "VERSION": "1.0.0"
     },
     {
      "ANSWERS": {},
      "BIND": {
       "VELOCITY": [
        "v_x",
        "v_z"
       ]
      },
      "DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
      "ID": "AIR-LINEAR",
      "VALUES": {
       "R_s": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cbef6a230fc42e469f541576f1bfb13111deac176d50f7b2ab25bbaf2dfac92a\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-6*pi_c*mu_air*R_s*v_x\"],[\"EOM_Z\",\"m*D(v_z,t)=-6*pi_c*mu_air*R_s*v_z\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"pi_c\",[\"AIR-LINEAR 1.0.0\",\"MATH 1.0.0\"]],[\"CONSTANT\",\"R_s\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"drag_sphere\",[\"AIR-LINEAR 1.0.0\"]],[\"BOUNDARY\",\"drag_linear_regime\",[\"AIR-LINEAR 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X10 the other order"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "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"
     },
     {
      "ANSWERS": {},
      "BIND": {
       "VELOCITY": [
        "v_x",
        "v_z"
       ]
      },
      "DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
      "ID": "AIR-LINEAR",
      "VALUES": {
       "R_s": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"6fc4b587f9cdc487ea81a1c518f2c15a635291c6120b3ac1a98c4d2f7c991d00\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-6*pi_c*mu_air*R_s*v_x\"],[\"EOM_Z\",\"m*D(v_z,t)=-6*pi_c*mu_air*R_s*v_z-m*g_n\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"pi_c\",[\"AIR-LINEAR 1.0.0\",\"MATH 1.0.0\"]],[\"CONSTANT\",\"R_s\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-LINEAR 1.0.0\"]],[\"ASSUMPTION\",\"drag_sphere\",[\"AIR-LINEAR 1.0.0\"]],[\"BOUNDARY\",\"drag_linear_regime\",[\"AIR-LINEAR 1.0.0\"]],[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X11 three modules (buoyancy NO)"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "a3cb8d842fcb338a7a6a158932f252f18fa6630a2126ad5192b23f938d996468",
      "ID": "TEST-PI",
      "VALUES": {},
      "VERSION": "1.0.0"
     },
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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-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\",\"EXPAND: MATH 1.0.0 and TEST-PI 1.0.0 both emit pi_c, differently\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X12 pi_c emitted differently is refused"
  },
  {
   "args": {
    "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": {},
      "BIND": {
       "VELOCITY": [
        "v_x",
        "v_z"
       ]
      },
      "DIGEST": "5f3fe27b42378bce0830b0d0959f892f4a8e73b12b540ae877e39e6439d08b4d",
      "ID": "AIR-LINEAR",
      "VALUES": {
       "R_s": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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\",\"CLAIMS: AIR-LINEAR 1.0.0 and AIR-QUADRATIC 1.0.0 exclude each other (EXCLUDES)\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X13 AIR-QUADRATIC EXCLUDES AIR-LINEAR"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "8f39a356f35527b901fcee012764590f0819c8ffdeccad4bc05195ce3d2e0bcf",
      "ID": "MATH",
      "VALUES": {},
      "VERSION": "1.0.0"
     },
     {
      "ANSWERS": {},
      "BIND": {},
      "DIGEST": "e8ff891ab581affaa9d0f940c25c760a9a47f75f3754307de579a648d5c94f1a",
      "ID": "TEST-EXCL",
      "VALUES": {},
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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-EXCL\", \"VERSION\": \"1.0.0\", \"TITLE\": \"Test: excludes MATH, one way\", \"SOURCE\": \"synthetic fixture\", \"PREREQUISITES\": [], \"PARAMETERS\": [], \"SUMS\": [], \"TERMS\": [], \"ASSUMPTIONS\": [], \"BOUNDARIES\": [], \"NOT_CHOSEN\": \"No exclusion test.\", \"NOT_INCLUDED\": [], \"EXCLUDES\": [\"MATH\"], \"INTERACTS_WITH\": [], \"TEST_BINDINGS\": [{\"NAME\": \"PROJECTILE_2D\", \"TPK\": {\"DOF\": [{\"NAME\": \"t\", \"DIMENSION\": \"T1\"}, {\"NAME\": \"x\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"z\", \"DIMENSION\": \"L1\"}, {\"NAME\": \"v_x\", \"DIMENSION\": \"L1 T-1\"}, {\"NAME\": \"v_z\", \"DIMENSION\": \"L1 T-1\"}], \"CONSTANT\": [{\"NAME\": \"m\", \"DIMENSION\": \"M1\"}], \"LAW\": [{\"NAME\": \"KIN_X\", \"STATEMENT\": \"dx/dt = v_x\", \"REFS\": [\"t\", \"v_x\", \"x\"], \"ROLE\": \"EOM(x)\", \"EQUATION\": \"D(x,t)=v_x\"}, {\"NAME\": \"KIN_Z\", \"STATEMENT\": \"dz/dt = v_z\", \"REFS\": [\"t\", \"v_z\", \"z\"], \"ROLE\": \"EOM(z)\", \"EQUATION\": \"D(z,t)=v_z\"}, {\"NAME\": \"EOM_X\", \"STATEMENT\": \"m dv_x/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_x\"], \"ROLE\": \"EOM(v_x)\", \"EQUATION\": \"m*D(v_x,t)=0\"}, {\"NAME\": \"EOM_Z\", \"STATEMENT\": \"m dv_z/dt = 0\", \"REFS\": [\"m\", \"t\", \"v_z\"], \"ROLE\": \"EOM(v_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\",\"CLAIMS: MATH 1.0.0 and TEST-EXCL 1.0.0 exclude each other (EXCLUDES)\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X14 EXCLUDES is symmetric: MATH names nothing, TEST-EXCL names MATH"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {
       "FIXED:v_z": "YES"
      },
      "BIND": {
       "HEIGHT": [
        "z"
       ],
       "MASS": [
        "m"
       ],
       "UP_VELOCITY": [
        "v_z"
       ]
      },
      "DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
      "ID": "GRAV-UNIFORM",
      "VALUES": {
       "h_max": {
        "UNIT": "m",
        "VALUE": "1"
       }
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       }
      ],
      "CONSTRAINT": [
       {
        "ACTION": "FIX",
        "NAME": "C_Z",
        "STATEMENT": "the puck stays on the table top, z = 0",
        "TARGET": "z",
        "UNIT": "m",
        "VALUE": "0"
       },
       {
        "ACTION": "FIX",
        "NAME": "C_VZ",
        "STATEMENT": "the puck has no vertical velocity",
        "TARGET": "v_z",
        "UNIT": "m s-1",
        "VALUE": "0"
       }
      ],
      "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": "CONSTRAINT",
        "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"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"cf1fd0fd4835bc3007c17e4ef8dd44f8acdf9d872b967aaeb8af30f64979ec11\"],[\"COMPOSED\",[]],[\"EMITTED\",[[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"fixed_v_z_balanced\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[[\"GRAV-UNIFORM 1.0.0\",\"v_z\"]]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X15 weight on a FIXED velocity, support answered YES: dropped, the balance assumed"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {
       "FIXED:v_z": "NO"
      },
      "BIND": {
       "HEIGHT": [
        "z"
       ],
       "MASS": [
        "m"
       ],
       "UP_VELOCITY": [
        "v_z"
       ]
      },
      "DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
      "ID": "GRAV-UNIFORM",
      "VALUES": {
       "h_max": {
        "UNIT": "m",
        "VALUE": "1"
       }
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       }
      ],
      "CONSTRAINT": [
       {
        "ACTION": "FIX",
        "NAME": "C_Z",
        "STATEMENT": "the puck stays on the table top, z = 0",
        "TARGET": "z",
        "UNIT": "m",
        "VALUE": "0"
       },
       {
        "ACTION": "FIX",
        "NAME": "C_VZ",
        "STATEMENT": "the puck has no vertical velocity",
        "TARGET": "v_z",
        "UNIT": "m s-1",
        "VALUE": "0"
       }
      ],
      "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": "CONSTRAINT",
        "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"
       }
      ]
     }
    },
    "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: TERM 1: v_z is FIXED and the answer to FIXED:v_z is NO: a force along a fixed DOF with no constraint force balancing it contradicts the constraint\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X16 the support-force question answered NO"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "HEIGHT": [
        "z"
       ],
       "MASS": [
        "m"
       ],
       "UP_VELOCITY": [
        "v_z"
       ]
      },
      "DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
      "ID": "GRAV-UNIFORM",
      "VALUES": {
       "h_max": {
        "UNIT": "m",
        "VALUE": "1"
       }
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       }
      ],
      "CONSTRAINT": [
       {
        "ACTION": "FIX",
        "NAME": "C_Z",
        "STATEMENT": "the puck stays on the table top, z = 0",
        "TARGET": "z",
        "UNIT": "m",
        "VALUE": "0"
       },
       {
        "ACTION": "FIX",
        "NAME": "C_VZ",
        "STATEMENT": "the puck has no vertical velocity",
        "TARGET": "v_z",
        "UNIT": "m s-1",
        "VALUE": "0"
       }
      ],
      "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": "CONSTRAINT",
        "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"
       }
      ]
     }
    },
    "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 FIXED:v_z is not answered (v_z is FIXED: does a constraint force balance the forces this module adds along it?)\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X17 the support-force question not answered"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {
       "FIXED:v_z": "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"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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: answer FIXED:v_z answers no question raised\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X18 a FIXED answer where nothing is fixed"
  },
  {
   "args": {
    "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"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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: answer BUOYANCY answers no question raised\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X19 a buoyancy answer without an air module"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {
       "BUOYANCY": "MAYBE"
      },
      "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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: answer BUOYANCY is not YES or NO\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X20 an answer neither YES nor NO"
  },
  {
   "args": {
    "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"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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: answer buoyancy is not a question\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X21 an answer key that is no question"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       }
      ],
      "CONSTRAINT": [
       {
        "ACTION": "REMOVE",
        "NAME": "C_RVZ",
        "STATEMENT": "v_z is not modelled",
        "TARGET": "v_z"
       }
      ],
      "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"
       }
      ]
     }
    },
    "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: TERM 1: v_z is REMOVED; no module is bound to a removed DOF\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X22 a REMOVED target"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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",
        "ROLE": "INPUT"
       }
      ],
      "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"
       }
      ]
     }
    },
    "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: TERM 1: v_z is an INPUT DOF and has no equation of motion\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X23 an INPUT target"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "PULLED": [
        "w"
       ],
       "PUSHED": [
        "u"
       ]
      },
      "DIGEST": "b6b691673ac7755590314caeba64e2cb06e1357cb67cfb3b55d4cb0581317657",
      "ID": "TEST-PUSH",
      "VALUES": {
       "F_a": {},
       "F_b": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "DOF": [
       {
        "DIMENSION": "L1 T-1",
        "NAME": "u"
       },
       {
        "DIMENSION": "L1 T-1",
        "NAME": "w"
       }
      ],
      "LAW": [
       {
        "EQUATION": "D(w,u)=0",
        "NAME": "EQ_W",
        "REFS": [
         "u",
         "w"
        ],
        "ROLE": "EOM(w)",
        "STATEMENT": "dw/du = 0"
       }
      ]
     }
    },
    "modules": [
     "{\"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\": {}}]}"
    ]
   },
   "expected": "[\"REFUSED\",\"CLAIM TEST-PUSH 1.0.0: TERM 1: u is the independent variable\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X24 the independent variable as a target"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "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: TERM 1: v_z has no equation of motion (NO LAW); write it, then bind the module\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X25 no equation of motion for the target (NO LAW)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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": [
       {
        "NAME": "KIN_X",
        "REFS": [
         "t",
         "v_x",
         "x"
        ],
        "ROLE": "EOM(x)",
        "STATEMENT": "dx/dt = v_x"
       },
       {
        "NAME": "KIN_Z",
        "REFS": [
         "t",
         "v_z",
         "z"
        ],
        "ROLE": "EOM(z)",
        "STATEMENT": "dz/dt = v_z"
       },
       {
        "NAME": "EOM_X",
        "REFS": [
         "m",
         "t",
         "v_x"
        ],
        "ROLE": "EOM(v_x)",
        "STATEMENT": "m dv_x/dt = 0"
       },
       {
        "NAME": "EOM_Z",
        "REFS": [
         "m",
         "t",
         "v_z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "m dv_z/dt = 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: TERM 1: v_z has no equation of motion (NO LAW); write it, then bind the module\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X26 laws in prose only (analysis NO FORM: NO LAW)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       },
       {
        "DIMENSION": "T1",
        "NAME": "s"
       }
      ],
      "LAW": [
       {
        "EQUATION": "D(x,s)=v_x",
        "NAME": "KIN_X",
        "REFS": [
         "s",
         "v_x",
         "x"
        ],
        "ROLE": "EOM(x)",
        "STATEMENT": "dx/ds = 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"
       }
      ],
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      }
     }
    },
    "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: TERM 1: v_z has no equation of motion (NOT ANALYZED); write it, then bind the module\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X26b two D variables (analysis PDE: NOT ANALYZED)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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": "CONSTITUTIVE",
        "STATEMENT": "m dv_z/dt = 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: TERM 1: v_z's equation of motion LAW EOM_Z has ROLE CONSTITUTIVE, not EOM(v_z)\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X27 the determining law's ROLE is not EOM(v_z)"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       },
       {
        "DIMENSION": "M1",
        "NAME": "c_v"
       }
      ],
      "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)=c_v*D(v_z,t)",
        "NAME": "EOM_Z",
        "REFS": [
         "c_v",
         "m",
         "t",
         "v_z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "m dv_z/dt = c_v dv_z/dt"
       }
      ]
     }
    },
    "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: TERM 1: LAW EOM_Z has no single side of the equation-of-motion shape for v_z\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X28 both sides of the equation-of-motion shape"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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": "0 = m*D(v_z, t)",
        "NAME": "EOM_Z",
        "REFS": [
         "m",
         "t",
         "v_z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "0 = m dv_z/dt"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"991592c04b877414e16b44b4d661368d8277edef270578847c45c3ff9dfcef2c\"],[\"COMPOSED\",[[\"EOM_Z\",\"-m*g_n=m*D(v_z,t)\"]]],[\"EMITTED\",[[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X29 the D side on the right: the force side is the left"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "HEIGHT": [
        "z"
       ],
       "MASS": [
        "m"
       ],
       "UP_VELOCITY": [
        "v_z"
       ]
      },
      "DIGEST": "24877ccb5c8ec300d29ed82ce6650592f35cf8899a3d878ccce9c08d4c72c025",
      "ID": "GRAV-UNIFORM",
      "VALUES": {
       "h_max": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "ASSUMPTION": [
       {
        "NAME": "linear_spring",
        "PROPOSITION": "the spring force is linear in z",
        "REFS": [
         "z"
        ]
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       },
       {
        "DIMENSION": "M1 T-2",
        "NAME": "k_s"
       }
      ],
      "DOF": [
       {
        "DIMENSION": "T1",
        "NAME": "t"
       },
       {
        "DIMENSION": "L1",
        "NAME": "z"
       },
       {
        "DIMENSION": "L1 T-1",
        "NAME": "v_z"
       }
      ],
      "LAW": [
       {
        "EQUATION": "D(z,t)=v_z",
        "NAME": "KIN",
        "REFS": [
         "t",
         "v_z",
         "z"
        ],
        "ROLE": "EOM(z)",
        "STATEMENT": "dz/dt = v_z"
       },
       {
        "EQUATION": "m*D(v_z,t)=-k_s*z",
        "NAME": "N2",
        "REFS": [
         "k_s",
         "m",
         "t",
         "v_z",
         "z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "m dv_z/dt = -k_s z"
       }
      ]
     }
    },
    "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\",[\"D(TPK)\",\"6fefa685f3f239390b1b3ff7723011e5837f499f83f3dce74b79930f4ba59eb0\"],[\"COMPOSED\",[[\"N2\",\"m*D(v_z,t)=-k_s*z-m*g_n\"]]],[\"EMITTED\",[[\"CONSTANT\",\"g_n\",[\"GRAV-UNIFORM 1.0.0\"]],[\"CONSTANT\",\"h_max\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_uniform\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"gravity_standard\",[\"GRAV-UNIFORM 1.0.0\"]],[\"ASSUMPTION\",\"frame_inertial\",[\"GRAV-UNIFORM 1.0.0\"]],[\"BOUNDARY\",\"gravity_region\",[\"GRAV-UNIFORM 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X30 a force side that is not 0: the term appended; h_max symbolic"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "PULLED": [
        "v_z"
       ],
       "PUSHED": [
        "v_x"
       ]
      },
      "DIGEST": "b6b691673ac7755590314caeba64e2cb06e1357cb67cfb3b55d4cb0581317657",
      "ID": "TEST-PUSH",
      "VALUES": {
       "F_a": {},
       "F_b": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "modules": [
     "{\"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\",[\"D(TPK)\",\"b60a19edcef35d01e43d56067fd1902570f3c51c23505c64141b0150777e5472\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=F_a+F_b\"],[\"EOM_Z\",\"m*D(v_z,t)=-(F_a+F_b)\"]]],[\"EMITTED\",[[\"CONSTANT\",\"F_a\",[\"TEST-PUSH 1.0.0\"]],[\"CONSTANT\",\"F_b\",[\"TEST-PUSH 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X31 SIGN +, and a sum wrapped in parentheses under SIGN -"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "PULLED": [
        "v_z"
       ],
       "PUSHED": [
        "v_x"
       ]
      },
      "DIGEST": "b6b691673ac7755590314caeba64e2cb06e1357cb67cfb3b55d4cb0581317657",
      "ID": "TEST-PUSH",
      "VALUES": {
       "F_a": {},
       "F_b": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "ASSUMPTION": [
       {
        "NAME": "point_mass",
        "PROPOSITION": "the body is treated as a point mass",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       },
       {
        "DIMENSION": "M1 T-1",
        "NAME": "c_x"
       }
      ],
      "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)=-c_x*v_x",
        "NAME": "EOM_X",
        "REFS": [
         "c_x",
         "m",
         "t",
         "v_x"
        ],
        "ROLE": "EOM(v_x)",
        "STATEMENT": "m dv_x/dt = -c_x v_x"
       },
       {
        "EQUATION": "m*D(v_z,t)=-c_x*v_z",
        "NAME": "EOM_Z",
        "REFS": [
         "c_x",
         "m",
         "t",
         "v_z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "m dv_z/dt = -c_x v_z"
       }
      ]
     }
    },
    "modules": [
     "{\"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\",[\"D(TPK)\",\"0cec34d6f30296a0be6ca383e5fe250908dc6e0e572a34b18d652e230aa172eb\"],[\"COMPOSED\",[[\"EOM_X\",\"m*D(v_x,t)=-c_x*v_x+(F_a+F_b)\"],[\"EOM_Z\",\"m*D(v_z,t)=-c_x*v_z-(F_a+F_b)\"]]],[\"EMITTED\",[[\"CONSTANT\",\"F_a\",[\"TEST-PUSH 1.0.0\"]],[\"CONSTANT\",\"F_b\",[\"TEST-PUSH 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X32 appended to a force side that is not 0: +(...) and -(...)"
  },
  {
   "args": {
    "claims": [
     {
      "ANSWERS": {},
      "BIND": {
       "VELOCITY": [
        "v_z"
       ]
      },
      "DIGEST": "6fb53c3a6546151eead2bd6e72e9cf8334f3a2040ad0ee2f5b988ec96d6fc852",
      "ID": "AIR-QUADRATIC",
      "VALUES": {
       "A_ref": {},
       "C_d": {},
       "L_ref": {}
      },
      "VERSION": "1.0.0"
     }
    ],
    "draft": {
     "TPK": {
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       }
      ],
      "DOF": [
       {
        "DIMENSION": "T1",
        "NAME": "t"
       },
       {
        "DIMENSION": "L1",
        "NAME": "z"
       },
       {
        "DIMENSION": "L1 T-1",
        "NAME": "v_z"
       }
      ],
      "LAW": [
       {
        "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_z,t)=0",
        "NAME": "EOM_Z",
        "REFS": [
         "m",
         "t",
         "v_z"
        ],
        "ROLE": "EOM(v_z)",
        "STATEMENT": "m dv_z/dt = 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\",[\"D(TPK)\",\"41ae10db1b815f366653ceb9b1d3c307c369b23d345099624533771866be3454\"],[\"COMPOSED\",[[\"EOM_Z\",\"m*D(v_z,t)=-5e-1*rho_air*C_d*A_ref*sqrt(v_z^2)*v_z\"]]],[\"EMITTED\",[[\"CONSTANT\",\"rho_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"mu_air\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"C_d\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"A_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"CONSTANT\",\"L_ref\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_still\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"air_uniform\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_cd_constant\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_lift\",[\"AIR-QUADRATIC 1.0.0\"]],[\"ASSUMPTION\",\"drag_no_magnus\",[\"AIR-QUADRATIC 1.0.0\"]],[\"BOUNDARY\",\"drag_quadratic_regime\",[\"AIR-QUADRATIC 1.0.0\"]]]],[\"DROPPED\",[]]]",
   "fn": "module_expand",
   "hand_checked": false,
   "name": "X33 a list slot of one member: the sum of one square"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1",
        "NAME": "m"
       },
       {
        "DIMENSION": "L1 T-2",
        "NAME": "g_n",
        "UNIT": "m s-2",
        "VALUE": "9.80665"
       }
      ],
      "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"
       }
      ]
     }
    },
    "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\",\"EXPAND: GRAV-UNIFORM 1.0.0 emits CONSTANT g_n, but the TPK already has an entry named g_n\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X34 an emitted name the author's TPK already has"
  },
  {
   "args": {
    "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.0.0"
     }
    ],
    "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"
       }
      ]
     }
    },
    "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 module text\"]",
   "fn": "module_expand",
   "hand_checked": true,
   "name": "X35 a claim whose DIGEST is not its text's"
  },
  {
   "args": {
    "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"
        ]
       }
      ],
      "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"
       }
      ]
     }
    },
    "modules": [