The Principia Machina/TPC-PY/vectors/module corpus.json/1
Appearance
{
"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": [