Jump to content

The Principia Machina/TPC-PY/vectors/eom corpus.json: Difference between revisions

From The Invariance Itself
m 1 revision imported
m 1 revision imported
 
(One intermediate revision by the same user not shown)
Line 2: Line 2:
  "meta": {
  "meta": {
   "name": "tpc_eom_corpus",
   "name": "tpc_eom_corpus",
   "version": "0.1.1",
   "version": "0.2.0",
   "status": "PROPOSED 2026-09-26 (D176.1 and D177.1, taken 2026-09-26; standing rulings S22-S31); awaiting the supervisor's verification",
   "status": "PROPOSED 2026-09-26 (D176.1 and D177.1, taken 2026-09-26; standing rulings S22-S31); awaiting the supervisor's verification",
   "conforms_tps": "0.2.0 (v15), with the schema 0.5.0 contract of BRIEF_COMMON_P4 section 2 and the D-variable rules of its section 3",
   "conforms_tps": "0.2.0 (v15), with the schema 0.5.0 contract of BRIEF_COMMON_P4 section 2 and the D-variable rules of its section 3",
   "module": "tpc_eom 0.1.0 (proposed; reads with tpc_zone's helpers and tpc_form's public form_tree, S32)",
   "module": "tpc_eom 0.1.1 (proposed with TPC-PY 0.2.0; reads with tpc_zone's helpers and tpc_form's public form_tree, S32)",
   "note": "A refusal and every eom_class answer is hand-derived; every other expectation comes from an independent brute-force oracle and holds the hand facts of its case. The fixtures are the EOM round's research drafts with a ROLE on every LAW (role table: tpm_eom_check 0.1.0, section 8) and synthetic kernels; test fixtures, not physics under research. T1, T3, T4 and the zone checks are not re-run here: some fixtures are ones the gate refuses, which the notes say. Both residences MUST reproduce every expect. 0.1.1 (agent R4, the cross-check): every fixture tpc_zone 0.5.0 refused that is not refused on purpose now passes it zone by zone: A10a and the synthetic three-variable and per-law PDE kernels declare D_VARIABLES SEVERAL (D177.1); dvar/one-with-two sets ONE explicitly. The fixtures still outside tpc_zone are refused on purpose: the refusal cases, corner_fix_t (a FIXed clock), a CONSTANT as D variable, ONE with two D variables, and the what-is-not-read and switch cases whose TPK or fields are malformed. No expectation moves."
   "note": "A refusal and every eom_class answer is hand-derived; every other expectation comes from an independent brute-force oracle and holds the hand facts of its case. The fixtures are the EOM round's research drafts with a ROLE on every LAW (role table: tpm_eom_check 0.1.0, section 8) and synthetic kernels; test fixtures, not physics under research. T1, T3, T4 and the zone checks are not re-run here: some fixtures are ones the gate refuses, which the notes say. Both residences MUST reproduce every expect. 0.1.1 (agent R4, the cross-check): every fixture tpc_zone 0.5.0 refused that is not refused on purpose now passes it zone by zone: A10a and the synthetic three-variable and per-law PDE kernels declare D_VARIABLES SEVERAL (D177.1); dvar/one-with-two sets ONE explicitly. The fixtures still outside tpc_zone are refused on purpose: the refusal cases, corner_fix_t (a FIXed clock), a CONSTANT as D variable, ONE with two D variables, and the what-is-not-read and switch cases whose TPK or fields are malformed. No expectation moves. 0.1.2 (C-MS-5, increment 11, 2026-09-28): 13 decode/ cases, hand-derived, a JSON {} and [] and an object keyed 0 read as written in both residences; no earlier expectation moves."
  },
  },
  "cases": [
  "cases": [
Line 29,122: Line 29,122:
   },
   },
   {
   {
   "id": "eom/register/e01-stale-struck",
   "id": "eom/register/e01-stale-refuted",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 29,196: Line 29,196:
     {
     {
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "STRUCK",
       "STATUS": "REFUTED",
       "ROLE": "EOM(v)",
       "ROLE": "EOM(v)",
       "EQUATION": "m * D(v, t) = -k_s * x"
       "EQUATION": "m * D(v, t) = -k_s * x"
Line 29,206: Line 29,206:
   },
   },
   {
   {
   "id": "eom/register/e01-stale-refuted",
   "id": "eom/register/e01-stale-withdrawn",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 29,280: Line 29,280:
     {
     {
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "REFUTED",
       "STATUS": "WITHDRAWN",
       "ROLE": "EOM(v)",
       "ROLE": "EOM(v)",
       "EQUATION": "m * D(v, t) = -k_s * x"
       "EQUATION": "m * D(v, t) = -k_s * x"
Line 29,288: Line 29,288:
   "note": "a record that does not stand is ignored (S24)",
   "note": "a record that does not stand is ignored (S24)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
  "id": "eom/register/e01-stale-struck",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      },
      {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
      },
      {
        "NAME": "t",
        "DIMENSION": "T1"
      }
      ],
      "CONSTANT": [
      {
        "NAME": "m",
        "DIMENSION": "M1"
      },
      {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
      },
      {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
      }
      ],
      "LAW": [
      {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
        "x",
        "v",
        "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
      },
      {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
        "m",
        "v",
        "k_s",
        "x",
        "t"
        ],
        "ROLE": "EOM(v)"
      }
      ]
    },
    "TMS": {
      "PARAMETERS": {
      "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
      "K": "2",
      "N_X": 2,
      "S_MAX": 10
      }
    }
    },
    "records": [
    {
      "ID": "RR-1",
      "STATUS": "STRUCK",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
    }
    ]
  },
  "note": "STRUCK is retired and VOID is no status (tpm_record_schema 0.2.0, 6.9): refused (12.1)",
  "expect": "[REFUSED,RECORD:RR-1: STATUS STRUCK is not a status word]"
   },
   },
   {
   {
Line 29,370: Line 29,454:
     ]
     ]
   },
   },
   "note": "a record that does not stand is ignored (S24)",
   "note": "STRUCK is retired and VOID is no status (tpm_record_schema 0.2.0, 6.9): refused (12.1)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
   "expect": "[REFUSED,RECORD:RR-1: STATUS VOID is not a status word]"
   },
   },
   {
   {
Line 29,460: Line 29,544:
     ]
     ]
   },
   },
   "note": "any status word other than STRUCK, HELD, REFUTED and VOID stands (the grade set is C-16's)",
   "note": "PROVISIONAL and ESTABLISHED stand; HELD, REFUTED and WITHDRAWN do not (12.1)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-3],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-3]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-3,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-3]],[SETTLED,[v]],[OPEN,[]]]"
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-3],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-3]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-3,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-3]],[SETTLED,[v]],[OPEN,[]]]"
   },
   },
Line 30,080: Line 30,164:
     ]
     ]
   },
   },
   "note": "IDs sorted by prefix, then n numerically",
   "note": "VOID is no status: refused (12.1)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-9],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-9]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-9,0]],[[v,1],[x,1]]],[CLOSED,[[AB-3,BOUND],[RR-10,UNBOUND]]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[CLOSED,RR-10,[k_s,m],RECORD RR-10 names no unknown once the fixed DOFs are applied, and depends on k_s, m, which the kernel does not bind: does it hold for every value of k_s, m, or is a force or an unknown missing?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[AB-3,RR-9,RR-10]],[SETTLED,[v]],[OPEN,[]]]"
   "expect": "[REFUSED,RECORD:RR-2: STATUS VOID is not a status word]"
   },
   },
   {
   {
   "id": "eom/register/e01-record-pde",
   "id": "eom/register/e01-record-order-withdrawn",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 30,157: Line 30,241:
     "records": [
     "records": [
     {
     {
       "ID": "RR-1",
       "ID": "RR-10",
      "STATUS": "PROVISIONAL",
      "ROLE": "DEFINITION",
      "EQUATION": "k_s = m * k_s / m"
    },
    {
      "ID": "RR-9",
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "EOM(v)",
       "ROLE": "EOM(v)",
Line 30,163: Line 30,253:
     },
     },
     {
     {
       "ID": "RR-5",
       "ID": "AB-3",
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "CONSTRAINT",
       "ROLE": "CONSTITUTIVE",
       "EQUATION": "D(x, k_s) = v"
      "EQUATION": "x_max = x_max"
    },
    {
      "ID": "RR-2",
      "STATUS": "WITHDRAWN",
      "ROLE": "EOM(v)",
       "EQUATION": "D(v, t) = 0"
     }
     }
     ]
     ]
   },
   },
   "note": "a second D variable: not analyzed, nothing settled",
   "note": "IDs sorted by prefix, then n numerically; a WITHDRAWN record ignored",
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[k_s,t]],[MAP,[[t,INDEPENDENT,],[v,NOT ANALYZED,],[x,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?],[PDE,[k_s,t],PDE: not analyzed]],[USED,[RR-1,RR-5]],[SETTLED,[]],[OPEN,[v]]]"
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-9],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-9]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-9,0]],[[v,1],[x,1]]],[CLOSED,[[AB-3,BOUND],[RR-10,UNBOUND]]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[CLOSED,RR-10,[k_s,m],RECORD RR-10 names no unknown once the fixed DOFs are applied, and depends on k_s, m, which the kernel does not bind: does it hold for every value of k_s, m, or is a force or an unknown missing?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[AB-3,RR-9,RR-10]],[SETTLED,[v]],[OPEN,[]]]"
   },
   },
   {
   {
   "id": "eom/register/a12-settled",
   "id": "eom/register/e01-record-pde",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 30,201: Line 30,297:
         "NAME": "k_s",
         "NAME": "k_s",
         "DIMENSION": "M1 T-2"
         "DIMENSION": "M1 T-2"
      },
      {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
       }
       ],
       ],
       "LAW": [
       "LAW": [
       {
       {
         "NAME": "N2",
        "NAME": "KIN",
         "STATEMENT": "m dv/dt = -k_s x",
        "STATEMENT": "dx/dt = v",
        "REFS": [
        "x",
        "v",
        "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
      },
      {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
        "m",
        "v",
        "k_s",
        "x",
        "t"
        ],
        "ROLE": "EOM(v)"
      }
      ]
    },
    "TMS": {
      "PARAMETERS": {
      "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
      "K": "2",
      "N_X": 2,
      "S_MAX": 10
      }
    }
    },
    "records": [
    {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
    },
    {
      "ID": "RR-5",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTRAINT",
      "EQUATION": "D(x, k_s) = v"
    }
    ]
  },
  "note": "a second D variable: not analyzed, nothing settled",
  "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[k_s,t]],[MAP,[[t,INDEPENDENT,],[v,NOT ANALYZED,],[x,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?],[PDE,[k_s,t],PDE: not analyzed]],[USED,[RR-1,RR-5]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
  "id": "eom/register/a12-settled",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      },
      {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
      },
      {
        "NAME": "t",
        "DIMENSION": "T1"
      }
      ],
      "CONSTANT": [
      {
        "NAME": "m",
        "DIMENSION": "M1"
      },
      {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
      }
      ],
      "LAW": [
      {
         "NAME": "N2",
         "STATEMENT": "m dv/dt = -k_s x",
         "REFS": [
         "REFS": [
         "m",
         "m",
Line 47,450: Line 47,636:
   },
   },
   {
   {
   "id": "eom/register/refuse-role-integer",
   "id": "eom/register/refuse-status-not-graded",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,524: Line 47,710:
     {
     {
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "NOT GRADED"
      "ROLE": 5,
      "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: field ROLE has the wrong type]"
   "expect": "[REFUSED,RECORD:RR-1: STATUS NOT GRADED is not a status word]"
   },
   },
   {
   {
   "id": "eom/register/refuse-role-bad",
   "id": "eom/register/refuse-status-unmarked",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,607: Line 47,791:
     {
     {
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "UNMARKED"
      "ROLE": "EOM v",
      "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM v is not a role]"
   "expect": "[REFUSED,RECORD:RR-1: STATUS UNMARKED is not a status word]"
   },
   },
   {
   {
   "id": "eom/register/refuse-role-eom-constant",
   "id": "eom/register/refuse-status-struck",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,690: Line 47,872:
     {
     {
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "STRUCK"
      "ROLE": "EOM(m)",
      "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM(m): m is not a DOF]"
   "expect": "[REFUSED,RECORD:RR-1: STATUS STRUCK is not a status word]"
   },
   },
   {
   {
   "id": "eom/register/refuse-equation-integer",
   "id": "eom/register/refuse-role-integer",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,774: Line 47,954:
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "EOM(v)",
       "ROLE": 5,
       "EQUATION": 5
       "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: field EQUATION has the wrong type]"
   "expect": "[REFUSED,RECORD:RR-1: field ROLE has the wrong type]"
   },
   },
   {
   {
   "id": "eom/register/refuse-equation-parse",
   "id": "eom/register/refuse-role-bad",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,857: Line 48,037:
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "EOM(v)",
       "ROLE": "EOM v",
       "EQUATION": "D(v, t) == 0"
       "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: EQUATION does not parse: unexpected token = at 10]"
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM v is not a role]"
   },
   },
   {
   {
   "id": "eom/register/refuse-equation-undeclared",
   "id": "eom/register/refuse-role-eom-constant",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 47,940: Line 48,120:
       "ID": "RR-1",
       "ID": "RR-1",
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "EOM(v)",
       "ROLE": "EOM(m)",
       "EQUATION": "D(v, t) = g"
       "EQUATION": "D(x, t) = v"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-1: EQUATION names g, which is not a DOF or CONSTANT]"
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM(m): m is not a DOF]"
   },
   },
   {
   {
   "id": "eom/register/refuse-second-record",
   "id": "eom/register/refuse-equation-integer",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 48,024: Line 48,204:
       "STATUS": "PROVISIONAL",
       "STATUS": "PROVISIONAL",
       "ROLE": "EOM(v)",
       "ROLE": "EOM(v)",
       "EQUATION": "m * D(v, t) = -k_s * x"
       "EQUATION": 5
     },
    }
    ]
  },
  "expect": "[REFUSED,RECORD:RR-1: field EQUATION has the wrong type]"
  },
  {
  "id": "eom/register/refuse-equation-parse",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      },
      {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
      },
      {
        "NAME": "t",
        "DIMENSION": "T1"
      }
      ],
      "CONSTANT": [
      {
        "NAME": "m",
        "DIMENSION": "M1"
      },
      {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
      },
      {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
      }
      ],
      "LAW": [
      {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
        "x",
        "v",
        "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
      },
      {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
        "m",
        "v",
        "k_s",
        "x",
        "t"
        ],
        "ROLE": "EOM(v)"
      }
      ]
     },
    "TMS": {
      "PARAMETERS": {
      "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
      "K": "2",
      "N_X": 2,
      "S_MAX": 10
      }
    }
    },
    "records": [
     {
     {
       "ID": "RR-2",
       "ID": "RR-1",
       "STATUS": "held"
       "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) == 0"
     }
     }
     ]
     ]
   },
   },
   "expect": "[REFUSED,RECORD:RR-2: STATUS held is not a status word]"
   "expect": "[REFUSED,RECORD:RR-1: EQUATION does not parse: unexpected token = at 10]"
   },
   },
   {
   {
   "id": "eom/register/refuse-tfk-first",
   "id": "eom/register/refuse-equation-undeclared",
   "fn": "eom_register_test",
   "fn": "eom_register_test",
   "input": {
   "input": {
Line 48,081: Line 48,340:
         ],
         ],
         "EQUATION": "D(x, t) = v",
         "EQUATION": "D(x, t) = v",
         "ROLE": "EOM"
         "ROLE": "EOM(x)"
       },
       },
       {
       {
Line 48,106: Line 48,365:
     }
     }
     },
     },
     "records": "RR-1"
     "records": [
    {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) = g"
    }
    ]
   },
   },
   "note": "the TFK is read before the records",
  "expect": "[REFUSED,RECORD:RR-1: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
  "id": "eom/register/refuse-second-record",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      },
      {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
      },
      {
        "NAME": "t",
        "DIMENSION": "T1"
      }
      ],
      "CONSTANT": [
      {
        "NAME": "m",
        "DIMENSION": "M1"
      },
      {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
      },
      {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
      }
      ],
      "LAW": [
      {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
        "x",
        "v",
        "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
      },
      {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
        "m",
        "v",
        "k_s",
        "x",
        "t"
        ],
        "ROLE": "EOM(v)"
      }
      ]
    },
    "TMS": {
      "PARAMETERS": {
      "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
      "K": "2",
      "N_X": 2,
      "S_MAX": 10
      }
    }
    },
    "records": [
    {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
    },
    {
      "ID": "RR-2",
      "STATUS": "held"
    }
    ]
  },
  "expect": "[REFUSED,RECORD:RR-2: STATUS held is not a status word]"
  },
  {
  "id": "eom/register/refuse-tfk-first",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      },
      {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
      },
      {
        "NAME": "t",
        "DIMENSION": "T1"
      }
      ],
      "CONSTANT": [
      {
        "NAME": "m",
        "DIMENSION": "M1"
      },
      {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
      },
      {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
      }
      ],
      "LAW": [
      {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
        "x",
        "v",
        "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM"
      },
      {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
        "m",
        "v",
        "k_s",
        "x",
        "t"
        ],
        "ROLE": "EOM(v)"
      }
      ]
    },
    "TMS": {
      "PARAMETERS": {
      "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
      "K": "2",
      "N_X": 2,
      "S_MAX": 10
      }
    }
    },
    "records": "RR-1"
  },
   "note": "the TFK is read before the records",
   "expect": "[REFUSED,LAW:KIN: ROLE EOM is not a role]"
   "expect": "[REFUSED,LAW:KIN: ROLE EOM is not a role]"
  },
  {
  "id": "eom/decode/map-tpk-list",
  "fn": "eom_map",
  "input": {
    "tfk": {
    "TPK": []
    }
  },
  "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
  "id": "eom/decode/map-kind-object",
  "fn": "eom_map",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": {}
    }
    }
  },
  "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
  "id": "eom/decode/map-kind-zero-keyed",
  "fn": "eom_map",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": {
      "0": {
        "NAME": "x",
        "DIMENSION": "L1"
      }
      }
    }
    }
  },
  "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
  "id": "eom/decode/map-entry-list",
  "fn": "eom_map",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      []
      ]
    }
    }
  },
  "expect": "[REFUSED,TPK kind DOF: entry is not an object]"
  },
  {
  "id": "eom/decode/findings-kind-object",
  "fn": "eom_findings",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      }
      ],
      "LAW": {}
    }
    }
  },
  "expect": "[REFUSED,TPK kind LAW is not a list]"
  },
  {
  "id": "eom/decode/map-tfk-list",
  "fn": "eom_map",
  "input": {
    "tfk": []
  },
  "expect": "[REFUSED,TFK is not an object]"
  },
  {
  "id": "eom/decode/class-tms-list",
  "fn": "eom_class",
  "input": {
    "tfk": {
    "TPK": {},
    "TMS": []
    }
  },
  "expect": "[REFUSED,TMS: zone is not an object]"
  },
  {
  "id": "eom/decode/class-parameters-list",
  "fn": "eom_class",
  "input": {
    "tfk": {
    "TPK": {},
    "TMS": {
      "PARAMETERS": []
    }
    }
  },
  "expect": "[REFUSED,TMS: part PARAMETERS is not an object]"
  },
  {
  "id": "eom/decode/class-parameters-empty-object",
  "fn": "eom_class",
  "input": {
    "tfk": {
    "TPK": {},
    "TMS": {
      "PARAMETERS": {}
    }
    }
  },
  "note": "an empty PARAMETERS object: STRUCTURE_CHECK absent, so ON; the empty kernel carries no form, so it is not structurally regular (S30: forms present)",
  "expect": "[STRUCTURE,Structure not Validated at Inception,[NO FORM]]"
  },
  {
  "id": "eom/decode/class-parameters-zero-keyed",
  "fn": "eom_class",
  "input": {
    "tfk": {
    "TPK": {},
    "TMS": {
      "PARAMETERS": {
      "0": "OFF"
      }
    }
    }
  },
  "note": "a key 0 is not STRUCTURE_CHECK, so ON (it read as a list and was refused)",
  "expect": "[STRUCTURE,Structure not Validated at Inception,[NO FORM]]"
  },
  {
  "id": "eom/decode/register-records-object",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      }
      ]
    }
    },
    "records": {}
  },
  "expect": "[REFUSED,records is not a list]"
  },
  {
  "id": "eom/decode/register-records-zero-keyed",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      }
      ]
    }
    },
    "records": {
    "0": {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL"
    }
    }
  },
  "expect": "[REFUSED,records is not a list]"
  },
  {
  "id": "eom/decode/register-record-entry-list",
  "fn": "eom_register_test",
  "input": {
    "tfk": {
    "TPK": {
      "DOF": [
      {
        "NAME": "x",
        "DIMENSION": "L1"
      }
      ]
    }
    },
    "records": [
    []
    ]
  },
  "expect": "[REFUSED,records: entry is not an object]"
   }
   }
  ]
  ]
}
}



Latest revision as of 02:11, 30 September 2026

{
 "meta": {
  "name": "tpc_eom_corpus",
  "version": "0.2.0",
  "status": "PROPOSED 2026-09-26 (D176.1 and D177.1, taken 2026-09-26; standing rulings S22-S31); awaiting the supervisor's verification",
  "conforms_tps": "0.2.0 (v15), with the schema 0.5.0 contract of BRIEF_COMMON_P4 section 2 and the D-variable rules of its section 3",
  "module": "tpc_eom 0.1.1 (proposed with TPC-PY 0.2.0; reads with tpc_zone's helpers and tpc_form's public form_tree, S32)",
  "note": "A refusal and every eom_class answer is hand-derived; every other expectation comes from an independent brute-force oracle and holds the hand facts of its case. The fixtures are the EOM round's research drafts with a ROLE on every LAW (role table: tpm_eom_check 0.1.0, section 8) and synthetic kernels; test fixtures, not physics under research. T1, T3, T4 and the zone checks are not re-run here: some fixtures are ones the gate refuses, which the notes say. Both residences MUST reproduce every expect. 0.1.1 (agent R4, the cross-check): every fixture tpc_zone 0.5.0 refused that is not refused on purpose now passes it zone by zone: A10a and the synthetic three-variable and per-law PDE kernels declare D_VARIABLES SEVERAL (D177.1); dvar/one-with-two sets ONE explicitly. The fixtures still outside tpc_zone are refused on purpose: the refusal cases, corner_fix_t (a FIXed clock), a CONSTANT as D variable, ONE with two D variables, and the what-is-not-read and switch cases whose TPK or fields are malformed. No expectation moves. 0.1.2 (C-MS-5, increment 11, 2026-09-28): 13 decode/ cases, hand-derived, a JSON {} and [] and an object keyed 0 read as written in both residences; no earlier expectation moves."
 },
 "cases": [
  {
   "id": "eom/findings/A01",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A01",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A01",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[FREE_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A02",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g_n",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g_n",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A02",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g_n",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g_n",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A03a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": "1",
        "UNIT": "kg"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A03a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": "1",
        "UNIT": "kg"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A03b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": "1",
        "UNIT": "kg"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "N_z",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A03b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": "1",
        "UNIT": "kg"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "N_z",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A03b",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": "1",
        "UNIT": "kg"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "N_z",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[N_z,DETERMINED,N2Z],[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[N_z,v,x],[KIN,N2,N2Z]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0],[N2Z,0]],[[N_z,0],[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A03c",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,N2Z,[m],LAW N2Z names no unknown once the fixed DOFs are applied, and depends on m, which the kernel does not bind: does it hold for every value of m, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/class/A03c",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A03c",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[N2Z,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A03c_eomz",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,N2Z,[m],LAW N2Z names no unknown once the fixed DOFs are applied, and depends on m, which the kernel does not bind: does it hold for every value of m, or is a force or an unknown missing?],[ROLE MISMATCH,N2Z,z,KNOWN,LAW N2Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/A03c_eomz",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_TABLE",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "the block stays on the table top z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/A04a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "d_ref",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "DX",
        "STATEMENT": "m dvx/dt = -(1/2) rho C_d A |v| vx",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(vx, t) = -0.5 * rho_air * C_d * A_ref * vx * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "DY",
        "STATEMENT": "m dvy/dt = -m g_n - (1/2) rho C_d A |v| vy",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * vy * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A04a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "d_ref",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "DX",
        "STATEMENT": "m dvx/dt = -(1/2) rho C_d A |v| vx",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(vx, t) = -0.5 * rho_air * C_d * A_ref * vx * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "DY",
        "STATEMENT": "m dvy/dt = -m g_n - (1/2) rho C_d A |v| vy",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * vy * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A04b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "d_ref",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "DX",
        "STATEMENT": "m dvx/dt = -(1/2) rho C_d A |v| vx",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(vx, t) = -0.5 * rho_air * C_d * A_ref * vx * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "DY",
        "STATEMENT": "m dvy/dt = -m g_n - (1/2) rho C_d A |v| vy",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * vy * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A04b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "d_ref",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "DX",
        "STATEMENT": "m dvx/dt = -(1/2) rho C_d A |v| vx",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(vx, t) = -0.5 * rho_air * C_d * A_ref * vx * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "DY",
        "STATEMENT": "m dvy/dt = -m g_n - (1/2) rho C_d A |v| vy",
        "REFS": [
         "m",
         "vx",
         "vy",
         "t",
         "rho_air",
         "C_d",
         "A_ref",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * vy * sqrt(vx^2 + vy^2)",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A05",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -m g_n - (1/2) rho C_d A v |v|",
        "REFS": [
         "m",
         "v",
         "t",
         "g_n",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * v * abs(v)",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A05",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -m g_n - (1/2) rho C_d A v |v|",
        "REFS": [
         "m",
         "v",
         "t",
         "g_n",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -m * g_n - 0.5 * rho_air * C_d * A_ref * v * abs(v)",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A06",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "theta",
        "DIMENSION": "1"
       },
       {
        "NAME": "omega",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dtheta/dt = omega",
        "REFS": [
         "theta",
         "omega",
         "t"
        ],
        "EQUATION": "D(theta, t) = omega",
        "ROLE": "EOM(theta)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "L domega/dt = -g_n sin(theta)",
        "REFS": [
         "L_p",
         "omega",
         "t",
         "g_n",
         "theta"
        ],
        "EQUATION": "L_p * D(omega, t) = -g_n * sin(theta)",
        "ROLE": "EOM(omega)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A06",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "theta",
        "DIMENSION": "1"
       },
       {
        "NAME": "omega",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dtheta/dt = omega",
        "REFS": [
         "theta",
         "omega",
         "t"
        ],
        "EQUATION": "D(theta, t) = omega",
        "ROLE": "EOM(theta)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "L domega/dt = -g_n sin(theta)",
        "REFS": [
         "L_p",
         "omega",
         "t",
         "g_n",
         "theta"
        ],
        "EQUATION": "L_p * D(omega, t) = -g_n * sin(theta)",
        "ROLE": "EOM(omega)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A07",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "lam",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "NX",
        "STATEMENT": "m dvx/dt = -lam x",
        "REFS": [
         "m",
         "vx",
         "t",
         "lam",
         "x"
        ],
        "EQUATION": "m * D(vx, t) = -lam * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "NY",
        "STATEMENT": "m dvy/dt = -lam y - m g_n",
        "REFS": [
         "m",
         "vy",
         "t",
         "lam",
         "y",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -lam * y - m * g_n",
        "ROLE": "EOM(vy)"
       },
       {
        "NAME": "ROD",
        "STATEMENT": "x^2 + y^2 = L^2",
        "REFS": [
         "x",
         "y",
         "L_p"
        ],
        "EQUATION": "x^2 + y^2 = L_p^2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A07",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "lam",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "NX",
        "STATEMENT": "m dvx/dt = -lam x",
        "REFS": [
         "m",
         "vx",
         "t",
         "lam",
         "x"
        ],
        "EQUATION": "m * D(vx, t) = -lam * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "NY",
        "STATEMENT": "m dvy/dt = -lam y - m g_n",
        "REFS": [
         "m",
         "vy",
         "t",
         "lam",
         "y",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -lam * y - m * g_n",
        "ROLE": "EOM(vy)"
       },
       {
        "NAME": "ROD",
        "STATEMENT": "x^2 + y^2 = L^2",
        "REFS": [
         "x",
         "y",
         "L_p"
        ],
        "EQUATION": "x^2 + y^2 = L_p^2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A07",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "lam",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "NX",
        "STATEMENT": "m dvx/dt = -lam x",
        "REFS": [
         "m",
         "vx",
         "t",
         "lam",
         "x"
        ],
        "EQUATION": "m * D(vx, t) = -lam * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "NY",
        "STATEMENT": "m dvy/dt = -lam y - m g_n",
        "REFS": [
         "m",
         "vy",
         "t",
         "lam",
         "y",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -lam * y - m * g_n",
        "ROLE": "EOM(vy)"
       },
       {
        "NAME": "ROD",
        "STATEMENT": "x^2 + y^2 = L^2",
        "REFS": [
         "x",
         "y",
         "L_p"
        ],
        "EQUATION": "x^2 + y^2 = L_p^2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[lam,DETERMINED,NX],[t,INDEPENDENT,],[vx,DETERMINED,KX],[vy,DETERMINED,NY],[x,DETERMINED,ROD],[y,DETERMINED,KY]]],[PARTS,[UNDER,[],[]],[SQUARE,[lam,vx,vy,x,y],[KX,KY,NX,NY,ROD]],[OVER,[],[]]],[INDEX,3],[INITIAL_VALUES,2],[OFFSETS,[[KX,1],[KY,1],[NX,0],[NY,0],[ROD,2]],[[lam,0],[vx,1],[vy,1],[x,2],[y,2]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A08",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "mu_k",
        "DIMENSION": "1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - mu_k m g_n sgn(v)",
        "REFS": [
         "m",
         "v",
         "t",
         "k_s",
         "x",
         "mu_k",
         "g_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - mu_k * m * g_n * v / abs(v)",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A08",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "mu_k",
        "DIMENSION": "1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - mu_k m g_n sgn(v)",
        "REFS": [
         "m",
         "v",
         "t",
         "k_s",
         "x",
         "mu_k",
         "g_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - mu_k * m * g_n * v / abs(v)",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A09",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "F1",
        "DIMENSION": "M1 L1 T-2"
       },
       {
        "NAME": "F2",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "W",
        "DIMENSION": "M1 L1 T-2",
        "VALUE": "100",
        "UNIT": "N"
       },
       {
        "NAME": "alpha",
        "DIMENSION": "1",
        "VALUE": "0.5236",
        "UNIT": "rad"
       }
      ],
      "LAW": [
       {
        "NAME": "FX",
        "STATEMENT": "F1 cos(alpha) - F2 cos(alpha) = 0",
        "REFS": [
         "F1",
         "F2",
         "alpha"
        ],
        "EQUATION": "F1 * cos(alpha) - F2 * cos(alpha) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "FY",
        "STATEMENT": "F1 sin(alpha) + F2 sin(alpha) = W",
        "REFS": [
         "F1",
         "F2",
         "alpha",
         "W"
        ],
        "EQUATION": "F1 * sin(alpha) + F2 * sin(alpha) = W",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A09",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "F1",
        "DIMENSION": "M1 L1 T-2"
       },
       {
        "NAME": "F2",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "W",
        "DIMENSION": "M1 L1 T-2",
        "VALUE": "100",
        "UNIT": "N"
       },
       {
        "NAME": "alpha",
        "DIMENSION": "1",
        "VALUE": "0.5236",
        "UNIT": "rad"
       }
      ],
      "LAW": [
       {
        "NAME": "FX",
        "STATEMENT": "F1 cos(alpha) - F2 cos(alpha) = 0",
        "REFS": [
         "F1",
         "F2",
         "alpha"
        ],
        "EQUATION": "F1 * cos(alpha) - F2 * cos(alpha) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "FY",
        "STATEMENT": "F1 sin(alpha) + F2 sin(alpha) = W",
        "REFS": [
         "F1",
         "F2",
         "alpha",
         "W"
        ],
        "EQUATION": "F1 * sin(alpha) + F2 * sin(alpha) = W",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A09",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "F1",
        "DIMENSION": "M1 L1 T-2"
       },
       {
        "NAME": "F2",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "W",
        "DIMENSION": "M1 L1 T-2",
        "VALUE": "100",
        "UNIT": "N"
       },
       {
        "NAME": "alpha",
        "DIMENSION": "1",
        "VALUE": "0.5236",
        "UNIT": "rad"
       }
      ],
      "LAW": [
       {
        "NAME": "FX",
        "STATEMENT": "F1 cos(alpha) - F2 cos(alpha) = 0",
        "REFS": [
         "F1",
         "F2",
         "alpha"
        ],
        "EQUATION": "F1 * cos(alpha) - F2 * cos(alpha) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "FY",
        "STATEMENT": "F1 sin(alpha) + F2 sin(alpha) = W",
        "REFS": [
         "F1",
         "F2",
         "alpha",
         "W"
        ],
        "EQUATION": "F1 * sin(alpha) + F2 * sin(alpha) = W",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[F1,DETERMINED,FX],[F2,DETERMINED,FY]]],[PARTS,[UNDER,[],[]],[SQUARE,[F1,F2],[FX,FY]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,0],[OFFSETS,[[FX,0],[FY,0]],[[F1,0],[F2,0]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A10a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PDE,[X,t],PDE: not analyzed]]]"
  },
  {
   "id": "eom/class/A10a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PDE]]"
  },
  {
   "id": "eom/map/A10a",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[X,t]],[MAP,[[X,INDEPENDENT,],[t,INDEPENDENT,],[u,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A10b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PROSE,HEAT,[X,t,u],LAW HEAT (ROLE EOM(u)) has no EQUATION and names the unknowns X, t, u: its equation is outside the analysis; can it be declared in form?],[NO FORM,[X,t,u],no LAW carries an EQUATION: which laws give the equations of the unknowns X, t, u?]]]"
  },
  {
   "id": "eom/class/A10b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PROSE,NO FORM]]"
  },
  {
   "id": "eom/map/A10b",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,NO FORM],[D_VARIABLES,[]],[MAP,[[X,NO LAW,],[t,NO LAW,],[u,NO LAW,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[HEAT,[X,t,u]]]]]]"
  },
  {
   "id": "eom/findings/A11a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "q",
        "DIMENSION": "I1 T1"
       },
       {
        "NAME": "E_x",
        "DIMENSION": "M1 L1 T-3 I-1",
        "VALUE": "1000",
        "UNIT": "V m-1"
       },
       {
        "NAME": "B_z",
        "DIMENSION": "M1 T-2 I-1",
        "VALUE": "0.01",
        "UNIT": "T"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "LX",
        "STATEMENT": "m dvx/dt = q (E_x + vy B_z)",
        "REFS": [
         "m",
         "vx",
         "t",
         "q",
         "E_x",
         "vy",
         "B_z"
        ],
        "EQUATION": "m * D(vx, t) = q * (E_x + vy * B_z)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "LY",
        "STATEMENT": "m dvy/dt = -q vx B_z",
        "REFS": [
         "m",
         "vy",
         "t",
         "q",
         "vx",
         "B_z"
        ],
        "EQUATION": "m * D(vy, t) = -q * vx * B_z",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A11a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "q",
        "DIMENSION": "I1 T1"
       },
       {
        "NAME": "E_x",
        "DIMENSION": "M1 L1 T-3 I-1",
        "VALUE": "1000",
        "UNIT": "V m-1"
       },
       {
        "NAME": "B_z",
        "DIMENSION": "M1 T-2 I-1",
        "VALUE": "0.01",
        "UNIT": "T"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "LX",
        "STATEMENT": "m dvx/dt = q (E_x + vy B_z)",
        "REFS": [
         "m",
         "vx",
         "t",
         "q",
         "E_x",
         "vy",
         "B_z"
        ],
        "EQUATION": "m * D(vx, t) = q * (E_x + vy * B_z)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "LY",
        "STATEMENT": "m dvy/dt = -q vx B_z",
        "REFS": [
         "m",
         "vy",
         "t",
         "q",
         "vx",
         "B_z"
        ],
        "EQUATION": "m * D(vy, t) = -q * vx * B_z",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A11b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "q",
        "DIMENSION": "I1 T1"
       },
       {
        "NAME": "E_x",
        "DIMENSION": "M1 L1 T-3 I-1",
        "VALUE": "1000",
        "UNIT": "V m-1"
       },
       {
        "NAME": "B_z",
        "DIMENSION": "M1 T-2 I-1",
        "VALUE": "0.01",
        "UNIT": "T"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "LX",
        "STATEMENT": "m dvx/dt = q (E_x + vy B_z)",
        "REFS": [
         "m",
         "vx",
         "t",
         "q",
         "E_x",
         "vy",
         "B_z"
        ],
        "EQUATION": "m * D(vx, t) = q * (E_x + vy * B_z)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "LY",
        "STATEMENT": "m dvy/dt = -q vx B_z",
        "REFS": [
         "m",
         "vy",
         "t",
         "q",
         "vx",
         "B_z"
        ],
        "EQUATION": "m * D(vy, t) = -q * vx * B_z",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A11b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "q",
        "DIMENSION": "I1 T1"
       },
       {
        "NAME": "E_x",
        "DIMENSION": "M1 L1 T-3 I-1",
        "VALUE": "1000",
        "UNIT": "V m-1"
       },
       {
        "NAME": "B_z",
        "DIMENSION": "M1 T-2 I-1",
        "VALUE": "0.01",
        "UNIT": "T"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "LX",
        "STATEMENT": "m dvx/dt = q (E_x + vy B_z)",
        "REFS": [
         "m",
         "vx",
         "t",
         "q",
         "E_x",
         "vy",
         "B_z"
        ],
        "EQUATION": "m * D(vx, t) = q * (E_x + vy * B_z)",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "LY",
        "STATEMENT": "m dvy/dt = -q vx B_z",
        "REFS": [
         "m",
         "vy",
         "t",
         "q",
         "vx",
         "B_z"
        ],
        "EQUATION": "m * D(vy, t) = -q * vx * B_z",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A12",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,x,[v,x],[N2],unknown x is determined by no law with a declared form (LAW N2 leaves v, x under-determined): which equation determines x?]]]"
  },
  {
   "id": "eom/class/A12",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A12",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,UNDER,N2],[x,NO LAW,]]],[PARTS,[UNDER,[v,x],[N2]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A13",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "E_0",
        "DIMENSION": "M1 L2 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EN",
        "STATEMENT": "m v^2 / 2 + k_s x^2 / 2 = E_0",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "E_0"
        ],
        "EQUATION": "0.5 * m * v^2 + 0.5 * k_s * x^2 = E_0",
        "ROLE": "INVARIANT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A13",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "E_0",
        "DIMENSION": "M1 L2 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EN",
        "STATEMENT": "m v^2 / 2 + k_s x^2 / 2 = E_0",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "E_0"
        ],
        "EQUATION": "0.5 * m * v^2 + 0.5 * k_s * x^2 = E_0",
        "ROLE": "INVARIANT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A13",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "E_0",
        "DIMENSION": "M1 L2 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EN",
        "STATEMENT": "m v^2 / 2 + k_s x^2 / 2 = E_0",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "E_0"
        ],
        "EQUATION": "0.5 * m * v^2 + 0.5 * k_s * x^2 = E_0",
        "ROLE": "INVARIANT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[EN]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A13_en_constraint",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "E_0",
        "DIMENSION": "M1 L2 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EN",
        "STATEMENT": "m v^2 / 2 + k_s x^2 / 2 = E_0",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "E_0"
        ],
        "EQUATION": "0.5 * m * v^2 + 0.5 * k_s * x^2 = E_0",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[EN,KIN,N2],[v,x],LAWs EN, KIN, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/class/A13_en_constraint",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "E_0",
        "DIMENSION": "M1 L2 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EN",
        "STATEMENT": "m v^2 / 2 + k_s x^2 / 2 = E_0",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "E_0"
        ],
        "EQUATION": "0.5 * m * v^2 + 0.5 * k_s * x^2 = E_0",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/A14",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "c_d",
        "DIMENSION": "M1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "N2D",
        "STATEMENT": "m dv/dt = -k_s x - c_d v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "c_d"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - c_d * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[N2,N2D],LAWs N2, N2D each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/A14",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "c_d",
        "DIMENSION": "M1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "N2D",
        "STATEMENT": "m dv/dt = -k_s x - c_d v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "c_d"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - c_d * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A14",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "c_d",
        "DIMENSION": "M1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "N2D",
        "STATEMENT": "m dv/dt = -k_s x - c_d v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "c_d"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - c_d * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,N2],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[KIN,N2,N2D]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A15",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,v,[v,y],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, y under-determined): which equation determines v?],[PROSE,N2,[v,y],LAW N2 (ROLE EOM(v)) has no EQUATION and names the unknowns v, y: its equation is outside the analysis; can it be declared in form?]]]"
  },
  {
   "id": "eom/class/A15",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS,PROSE]]"
  },
  {
   "id": "eom/map/A15",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[y,UNDER,KIN]]],[PARTS,[UNDER,[v,y],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[N2,[v,y]]]]]]"
  },
  {
   "id": "eom/map/A16",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/findings/A16",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/class/A16",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/A16b",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t",
         "g"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/findings/A16b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t",
         "g"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/class/A16b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s y - m g",
        "REFS": [
         "m",
         "v",
         "k_s",
         "y",
         "t",
         "g"
        ],
        "EQUATION": "m * D(v, t) = -k_s * y - m * g",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:N2: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/findings/A17a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "m_r",
        "DIMENSION": "M1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "u_e",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "mdot",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dh/dt = v",
        "REFS": [
         "h",
         "v",
         "t"
        ],
        "EQUATION": "D(h, t) = v",
        "ROLE": "EOM(h)"
       },
       {
        "NAME": "BURN",
        "STATEMENT": "dm/dt = -mdot",
        "REFS": [
         "m_r",
         "t",
         "mdot"
        ],
        "EQUATION": "D(m_r, t) = -mdot",
        "ROLE": "EOM(m_r)"
       },
       {
        "NAME": "THRUST",
        "STATEMENT": "m dv/dt = u_e mdot - m g_n",
        "REFS": [
         "m_r",
         "v",
         "t",
         "u_e",
         "mdot",
         "g_n"
        ],
        "EQUATION": "m_r * D(v, t) = u_e * mdot - m_r * g_n",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A17a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "m_r",
        "DIMENSION": "M1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "u_e",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "mdot",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dh/dt = v",
        "REFS": [
         "h",
         "v",
         "t"
        ],
        "EQUATION": "D(h, t) = v",
        "ROLE": "EOM(h)"
       },
       {
        "NAME": "BURN",
        "STATEMENT": "dm/dt = -mdot",
        "REFS": [
         "m_r",
         "t",
         "mdot"
        ],
        "EQUATION": "D(m_r, t) = -mdot",
        "ROLE": "EOM(m_r)"
       },
       {
        "NAME": "THRUST",
        "STATEMENT": "m dv/dt = u_e mdot - m g_n",
        "REFS": [
         "m_r",
         "v",
         "t",
         "u_e",
         "mdot",
         "g_n"
        ],
        "EQUATION": "m_r * D(v, t) = u_e * mdot - m_r * g_n",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A17a",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "m_r",
        "DIMENSION": "M1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "u_e",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "mdot",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dh/dt = v",
        "REFS": [
         "h",
         "v",
         "t"
        ],
        "EQUATION": "D(h, t) = v",
        "ROLE": "EOM(h)"
       },
       {
        "NAME": "BURN",
        "STATEMENT": "dm/dt = -mdot",
        "REFS": [
         "m_r",
         "t",
         "mdot"
        ],
        "EQUATION": "D(m_r, t) = -mdot",
        "ROLE": "EOM(m_r)"
       },
       {
        "NAME": "THRUST",
        "STATEMENT": "m dv/dt = u_e mdot - m g_n",
        "REFS": [
         "m_r",
         "v",
         "t",
         "u_e",
         "mdot",
         "g_n"
        ],
        "EQUATION": "m_r * D(v, t) = u_e * mdot - m_r * g_n",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[h,DETERMINED,KIN],[m_r,DETERMINED,BURN],[t,INDEPENDENT,],[v,DETERMINED,THRUST]]],[PARTS,[UNDER,[],[]],[SQUARE,[h,m_r,v],[BURN,KIN,THRUST]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,3],[OFFSETS,[[BURN,0],[KIN,0],[THRUST,0]],[[h,1],[m_r,1],[v,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A17b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "m_r",
        "DIMENSION": "M1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "mdot",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dh/dt = v",
        "REFS": [
         "h",
         "v",
         "t"
        ],
        "EQUATION": "D(h, t) = v",
        "ROLE": "EOM(h)"
       },
       {
        "NAME": "BURN",
        "STATEMENT": "dm/dt = -mdot",
        "REFS": [
         "m_r",
         "t",
         "mdot"
        ],
        "EQUATION": "D(m_r, t) = -mdot",
        "ROLE": "EOM(m_r)"
       },
       {
        "NAME": "THRUST",
        "STATEMENT": "d(m v)/dt = -m g_n",
        "REFS": [
         "m_r",
         "v",
         "t",
         "g_n"
        ],
        "EQUATION": "m_r * D(v, t) + v * D(m_r, t) = -m_r * g_n",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A17b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "m_r",
        "DIMENSION": "M1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "mdot",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dh/dt = v",
        "REFS": [
         "h",
         "v",
         "t"
        ],
        "EQUATION": "D(h, t) = v",
        "ROLE": "EOM(h)"
       },
       {
        "NAME": "BURN",
        "STATEMENT": "dm/dt = -mdot",
        "REFS": [
         "m_r",
         "t",
         "mdot"
        ],
        "EQUATION": "D(m_r, t) = -mdot",
        "ROLE": "EOM(m_r)"
       },
       {
        "NAME": "THRUST",
        "STATEMENT": "d(m v)/dt = -m g_n",
        "REFS": [
         "m_r",
         "v",
         "t",
         "g_n"
        ],
        "EQUATION": "m_r * D(v, t) + v * D(m_r, t) = -m_r * g_n",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A18",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "e_r",
        "DIMENSION": "1",
        "VALUE": "0.8",
        "UNIT": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "FALL",
        "STATEMENT": "dv/dt = -g_n",
        "REFS": [
         "v",
         "t",
         "g_n"
        ],
        "EQUATION": "D(v, t) = -g_n",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "IMPACT",
        "STATEMENT": "when y reaches 0 with v < 0, v is replaced by -e_r v",
        "REFS": [
         "y",
         "v",
         "e_r"
        ],
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PROSE,IMPACT,[v,y],LAW IMPACT (ROLE CONSTRAINT) has no EQUATION and names the unknowns v, y: its equation is outside the analysis; can it be declared in form?]]]"
  },
  {
   "id": "eom/class/A18",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "e_r",
        "DIMENSION": "1",
        "VALUE": "0.8",
        "UNIT": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "FALL",
        "STATEMENT": "dv/dt = -g_n",
        "REFS": [
         "v",
         "t",
         "g_n"
        ],
        "EQUATION": "D(v, t) = -g_n",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "IMPACT",
        "STATEMENT": "when y reaches 0 with v < 0, v is replaced by -e_r v",
        "REFS": [
         "y",
         "v",
         "e_r"
        ],
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PROSE]]"
  },
  {
   "id": "eom/map/A18",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "e_r",
        "DIMENSION": "1",
        "VALUE": "0.8",
        "UNIT": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "FALL",
        "STATEMENT": "dv/dt = -g_n",
        "REFS": [
         "v",
         "t",
         "g_n"
        ],
        "EQUATION": "D(v, t) = -g_n",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "IMPACT",
        "STATEMENT": "when y reaches 0 with v < 0, v is replaced by -e_r v",
        "REFS": [
         "y",
         "v",
         "e_r"
        ],
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,FALL],[y,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,y],[FALL,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[FALL,0],[KIN,0]],[[v,1],[y,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[IMPACT,[v,y]]]]]]"
  },
  {
   "id": "eom/findings/A19",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "w1",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "w2",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "w3",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "I1",
        "DIMENSION": "M1 L2"
       },
       {
        "NAME": "I2",
        "DIMENSION": "M1 L2"
       },
       {
        "NAME": "I3",
        "DIMENSION": "M1 L2"
       }
      ],
      "LAW": [
       {
        "NAME": "E1",
        "STATEMENT": "I1 dw1/dt = (I2 - I3) w2 w3",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I1 * D(w1, t) = (I2 - I3) * w2 * w3",
        "ROLE": "EOM(w1)"
       },
       {
        "NAME": "E2",
        "STATEMENT": "I2 dw2/dt = (I3 - I1) w3 w1",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I2 * D(w2, t) = (I3 - I1) * w3 * w1",
        "ROLE": "EOM(w2)"
       },
       {
        "NAME": "E3",
        "STATEMENT": "I3 dw3/dt = (I1 - I2) w1 w2",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I3 * D(w3, t) = (I1 - I2) * w1 * w2",
        "ROLE": "EOM(w3)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A19",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "w1",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "w2",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "w3",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "I1",
        "DIMENSION": "M1 L2"
       },
       {
        "NAME": "I2",
        "DIMENSION": "M1 L2"
       },
       {
        "NAME": "I3",
        "DIMENSION": "M1 L2"
       }
      ],
      "LAW": [
       {
        "NAME": "E1",
        "STATEMENT": "I1 dw1/dt = (I2 - I3) w2 w3",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I1 * D(w1, t) = (I2 - I3) * w2 * w3",
        "ROLE": "EOM(w1)"
       },
       {
        "NAME": "E2",
        "STATEMENT": "I2 dw2/dt = (I3 - I1) w3 w1",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I2 * D(w2, t) = (I3 - I1) * w3 * w1",
        "ROLE": "EOM(w2)"
       },
       {
        "NAME": "E3",
        "STATEMENT": "I3 dw3/dt = (I1 - I2) w1 w2",
        "REFS": [
         "I1",
         "w1",
         "t",
         "I2",
         "I3",
         "w2",
         "w3"
        ],
        "EQUATION": "I3 * D(w3, t) = (I1 - I2) * w1 * w2",
        "ROLE": "EOM(w3)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A20",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A20",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A20",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[xi,INPUT,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A20_no_input",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,xi,[v,x,xi],[KIN,N2],unknown xi is determined by no law with a declared form (LAWs KIN, N2 leave v, x, xi under-determined): which equation determines xi?],[PROSE,NOISE,[xi],LAW NOISE (ROLE CONSTITUTIVE) has no EQUATION and names the unknown xi: its equation is outside the analysis; can it be declared in form?]]]"
  },
  {
   "id": "eom/class/A20_no_input",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS,PROSE]]"
  },
  {
   "id": "eom/map/A20_no_input",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "gamma_d",
        "DIMENSION": "M1 T-1"
       },
       {
        "NAME": "k_B",
        "DIMENSION": "M1 L2 T-2 TH-1"
       },
       {
        "NAME": "T_b",
        "DIMENSION": "TH1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -gamma v + xi",
        "REFS": [
         "m",
         "v",
         "t",
         "gamma_d",
         "xi"
        ],
        "EQUATION": "m * D(v, t) = -gamma_d * v + xi",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "NOISE",
        "STATEMENT": "xi is Gaussian white noise, <xi(t) xi(s)> = 2 gamma k_B T delta(t - s)",
        "REFS": [
         "xi",
         "gamma_d",
         "k_B",
         "T_b"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,UNDER,N2],[x,UNDER,KIN],[xi,NO LAW,]]],[PARTS,[UNDER,[v,x,xi],[KIN,N2]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[NOISE,[xi]]]]]]"
  },
  {
   "id": "eom/findings/A21",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "X",
        "DIMENSION": "1"
       },
       {
        "NAME": "V",
        "DIMENSION": "1"
       },
       {
        "NAME": "tau",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dX/dtau = V",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(X, tau) = V",
        "ROLE": "EOM(X)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "dV/dtau = -X",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(V, tau) = -X",
        "ROLE": "EOM(V)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A21",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "X",
        "DIMENSION": "1"
       },
       {
        "NAME": "V",
        "DIMENSION": "1"
       },
       {
        "NAME": "tau",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dX/dtau = V",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(X, tau) = V",
        "ROLE": "EOM(X)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "dV/dtau = -X",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(V, tau) = -X",
        "ROLE": "EOM(V)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/A21",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "X",
        "DIMENSION": "1"
       },
       {
        "NAME": "V",
        "DIMENSION": "1"
       },
       {
        "NAME": "tau",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dX/dtau = V",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(X, tau) = V",
        "ROLE": "EOM(X)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "dV/dtau = -X",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(V, tau) = -X",
        "ROLE": "EOM(V)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[tau]],[MAP,[[V,DETERMINED,N2],[X,DETERMINED,KIN],[tau,INDEPENDENT,]]],[PARTS,[UNDER,[],[]],[SQUARE,[V,X],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[V,1],[X,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A22",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a_r",
        "DIMENSION": "1"
       },
       {
        "NAME": "a_i",
        "DIMENSION": "1"
       },
       {
        "NAME": "b_r",
        "DIMENSION": "1"
       },
       {
        "NAME": "b_i",
        "DIMENSION": "1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "Om",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "S1",
        "STATEMENT": "d a_r/dt = (Om/2) b_i",
        "REFS": [
         "a_r",
         "t",
         "Om",
         "b_i"
        ],
        "EQUATION": "D(a_r, t) = 0.5 * Om * b_i",
        "ROLE": "EOM(a_r)"
       },
       {
        "NAME": "S2",
        "STATEMENT": "d a_i/dt = -(Om/2) b_r",
        "REFS": [
         "a_i",
         "t",
         "Om",
         "b_r"
        ],
        "EQUATION": "D(a_i, t) = -0.5 * Om * b_r",
        "ROLE": "EOM(a_i)"
       },
       {
        "NAME": "S3",
        "STATEMENT": "d b_r/dt = (Om/2) a_i",
        "REFS": [
         "b_r",
         "t",
         "Om",
         "a_i"
        ],
        "EQUATION": "D(b_r, t) = 0.5 * Om * a_i",
        "ROLE": "EOM(b_r)"
       },
       {
        "NAME": "S4",
        "STATEMENT": "d b_i/dt = -(Om/2) a_r",
        "REFS": [
         "b_i",
         "t",
         "Om",
         "a_r"
        ],
        "EQUATION": "D(b_i, t) = -0.5 * Om * a_r",
        "ROLE": "EOM(b_i)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A22",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a_r",
        "DIMENSION": "1"
       },
       {
        "NAME": "a_i",
        "DIMENSION": "1"
       },
       {
        "NAME": "b_r",
        "DIMENSION": "1"
       },
       {
        "NAME": "b_i",
        "DIMENSION": "1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "Om",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "S1",
        "STATEMENT": "d a_r/dt = (Om/2) b_i",
        "REFS": [
         "a_r",
         "t",
         "Om",
         "b_i"
        ],
        "EQUATION": "D(a_r, t) = 0.5 * Om * b_i",
        "ROLE": "EOM(a_r)"
       },
       {
        "NAME": "S2",
        "STATEMENT": "d a_i/dt = -(Om/2) b_r",
        "REFS": [
         "a_i",
         "t",
         "Om",
         "b_r"
        ],
        "EQUATION": "D(a_i, t) = -0.5 * Om * b_r",
        "ROLE": "EOM(a_i)"
       },
       {
        "NAME": "S3",
        "STATEMENT": "d b_r/dt = (Om/2) a_i",
        "REFS": [
         "b_r",
         "t",
         "Om",
         "a_i"
        ],
        "EQUATION": "D(b_r, t) = 0.5 * Om * a_i",
        "ROLE": "EOM(b_r)"
       },
       {
        "NAME": "S4",
        "STATEMENT": "d b_i/dt = -(Om/2) a_r",
        "REFS": [
         "b_i",
         "t",
         "Om",
         "a_r"
        ],
        "EQUATION": "D(b_i, t) = -0.5 * Om * a_r",
        "ROLE": "EOM(b_i)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A23",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_r",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "tau_d",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "DDE",
        "STATEMENT": "dx/dt = -a_r x(t - tau_d)",
        "REFS": [
         "x",
         "t",
         "a_r",
         "tau_d"
        ],
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PROSE,DDE,[t,x],LAW DDE (ROLE EOM(x)) has no EQUATION and names the unknowns t, x: its equation is outside the analysis; can it be declared in form?],[NO FORM,[t,x],no LAW carries an EQUATION: which laws give the equations of the unknowns t, x?]]]"
  },
  {
   "id": "eom/class/A23",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_r",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "tau_d",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "DDE",
        "STATEMENT": "dx/dt = -a_r x(t - tau_d)",
        "REFS": [
         "x",
         "t",
         "a_r",
         "tau_d"
        ],
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PROSE,NO FORM]]"
  },
  {
   "id": "eom/map/A23",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_r",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "tau_d",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "DDE",
        "STATEMENT": "dx/dt = -a_r x(t - tau_d)",
        "REFS": [
         "x",
         "t",
         "a_r",
         "tau_d"
        ],
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,NO FORM],[D_VARIABLES,[]],[MAP,[[t,NO LAW,],[x,NO LAW,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[DDE,[t,x]]]]]]"
  },
  {
   "id": "eom/findings/A24",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "Om_f",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "RX",
        "STATEMENT": "dvx/dt = 2 Om vy + Om^2 x",
        "REFS": [
         "vx",
         "t",
         "Om_f",
         "vy",
         "x"
        ],
        "EQUATION": "D(vx, t) = 2 * Om_f * vy + Om_f^2 * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "RY",
        "STATEMENT": "dvy/dt = -2 Om vx + Om^2 y",
        "REFS": [
         "vy",
         "t",
         "Om_f",
         "vx",
         "y"
        ],
        "EQUATION": "D(vy, t) = -2 * Om_f * vx + Om_f^2 * y",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A24",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "Om_f",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "RX",
        "STATEMENT": "dvx/dt = 2 Om vy + Om^2 x",
        "REFS": [
         "vx",
         "t",
         "Om_f",
         "vy",
         "x"
        ],
        "EQUATION": "D(vx, t) = 2 * Om_f * vy + Om_f^2 * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "RY",
        "STATEMENT": "dvy/dt = -2 Om vx + Om^2 y",
        "REFS": [
         "vy",
         "t",
         "Om_f",
         "vx",
         "y"
        ],
        "EQUATION": "D(vy, t) = -2 * Om_f * vx + Om_f^2 * y",
        "ROLE": "EOM(vy)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A25",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_0",
        "DIMENSION": "L1",
        "VALUE": "0.01",
        "UNIT": "m"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "IC",
        "STATEMENT": "x(0) = x_0",
        "REFS": [
         "x",
         "x_0"
        ],
        "EQUATION": "x = x_0",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[IC,KIN,N2],[v,x],LAWs IC, KIN, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/class/A25",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_0",
        "DIMENSION": "L1",
        "VALUE": "0.01",
        "UNIT": "m"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "IC",
        "STATEMENT": "x(0) = x_0",
        "REFS": [
         "x",
         "x_0"
        ],
        "EQUATION": "x = x_0",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A25",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_0",
        "DIMENSION": "L1",
        "VALUE": "0.01",
        "UNIT": "m"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "IC",
        "STATEMENT": "x(0) = x_0",
        "REFS": [
         "x",
         "x_0"
        ],
        "EQUATION": "x = x_0",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,N2],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[IC,KIN,N2]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A26",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "w",
        "DIMENSION": "T-1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,w,[w],[],unknown w is named by no law with a declared form: which equation determines w?]]]"
  },
  {
   "id": "eom/class/A26",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "w",
        "DIMENSION": "T-1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A26",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "w",
        "DIMENSION": "T-1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[w,NO LAW,],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[w],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A27a",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_2",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b + c = L_0",
        "REFS": [
         "a",
         "b",
         "c",
         "L_0"
        ],
        "EQUATION": "a + b + c = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = L_1",
        "REFS": [
         "a",
         "L_1"
        ],
        "EQUATION": "a = L_1",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P3",
        "STATEMENT": "2 a = L_2",
        "REFS": [
         "a",
         "L_2"
        ],
        "EQUATION": "2 * a = L_2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,c,[b,c],[P1],unknown c is determined by no law with a declared form (LAW P1 leaves b, c under-determined): which equation determines c?],[OVER,[P2,P3],[a],LAWs P2, P3 give more equations than the unknown a they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/class/A27a",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_2",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b + c = L_0",
        "REFS": [
         "a",
         "b",
         "c",
         "L_0"
        ],
        "EQUATION": "a + b + c = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = L_1",
        "REFS": [
         "a",
         "L_1"
        ],
        "EQUATION": "a = L_1",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P3",
        "STATEMENT": "2 a = L_2",
        "REFS": [
         "a",
         "L_2"
        ],
        "EQUATION": "2 * a = L_2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/A27a",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_2",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b + c = L_0",
        "REFS": [
         "a",
         "b",
         "c",
         "L_0"
        ],
        "EQUATION": "a + b + c = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = L_1",
        "REFS": [
         "a",
         "L_1"
        ],
        "EQUATION": "a = L_1",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P3",
        "STATEMENT": "2 a = L_2",
        "REFS": [
         "a",
         "L_2"
        ],
        "EQUATION": "2 * a = L_2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[a,OVER,P2],[b,UNDER,P1],[c,NO LAW,]]],[PARTS,[UNDER,[b,c],[P1]],[SQUARE,[],[]],[OVER,[a],[P2,P3]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/A27b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b = L_0",
        "REFS": [
         "a",
         "b",
         "L_0"
        ],
        "EQUATION": "a + b = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "2 a + 2 b = L_1",
        "REFS": [
         "a",
         "b",
         "L_1"
        ],
        "EQUATION": "2 * a + 2 * b = L_1",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A27b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b = L_0",
        "REFS": [
         "a",
         "b",
         "L_0"
        ],
        "EQUATION": "a + b = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "2 a + 2 b = L_1",
        "REFS": [
         "a",
         "b",
         "L_1"
        ],
        "EQUATION": "2 * a + 2 * b = L_1",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/A28",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v"
        ],
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PROSE,KIN,[v,x],LAW KIN (ROLE EOM(x)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?],[PROSE,N2,[v,x],LAW N2 (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?],[NO FORM,[v,x],no LAW carries an EQUATION: which laws give the equations of the unknowns v, x?]]]"
  },
  {
   "id": "eom/class/A28",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v"
        ],
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PROSE,NO FORM]]"
  },
  {
   "id": "eom/map/A28",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v"
        ],
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,NO FORM],[D_VARIABLES,[]],[MAP,[[v,NO LAW,],[x,NO LAW,],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[KIN,[v,x]],[N2,[v,x]]]]]]"
  },
  {
   "id": "eom/findings/A29",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "R_s",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       },
       {
        "NAME": "pi_c",
        "DIMENSION": "1",
        "VALUE": "3.14159265358979",
        "UNIT": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -m g_n - 6 pi mu R v",
        "REFS": [
         "m",
         "v",
         "t",
         "g_n",
         "pi_c",
         "mu_air",
         "R_s"
        ],
        "EQUATION": "m * D(v, t) = -m * g_n - 6 * pi_c * mu_air * R_s * v",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/A29",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "R_s",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "mu_air",
        "DIMENSION": "M1 L-1 T-1",
        "VALUE": "1.7894e-5",
        "UNIT": "Pa s"
       },
       {
        "NAME": "pi_c",
        "DIMENSION": "1",
        "VALUE": "3.14159265358979",
        "UNIT": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dy/dt = v",
        "REFS": [
         "y",
         "v",
         "t"
        ],
        "EQUATION": "D(y, t) = v",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -m g_n - 6 pi mu R v",
        "REFS": [
         "m",
         "v",
         "t",
         "g_n",
         "pi_c",
         "mu_air",
         "R_s"
        ],
        "EQUATION": "m * D(v, t) = -m * g_n - 6 * pi_c * mu_air * R_s * v",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/g1",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ROLE MISMATCH,FREE_Z,z,KNOWN,LAW FREE_Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/g1",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/g2",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,z,[FREE_Z,GRAV_Z],LAWs FREE_Z, GRAV_Z each state the motion of z: are they one equation, or is one to be removed?],[ROLE MISMATCH,FREE_Z,z,KNOWN,LAW FREE_Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?],[ROLE MISMATCH,GRAV_Z,z,KNOWN,LAW GRAV_Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/g2",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/g2",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[FREE_Z,ZERO],[GRAV_Z,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/g2b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,z,[FREE_Z,GRAV_Z],LAWs FREE_Z, GRAV_Z each state the motion of z: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/g2b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/g2c",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,z,[FREE_Z,GRAV_Z],LAWs FREE_Z, GRAV_Z each state the motion of z: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/g2c",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/g2c",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       },
       {
        "NAME": "GRAV_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,OVER,FREE_Z]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[z],[FREE_Z,GRAV_Z]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/g3",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2_Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m",
         "N_z"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/g3",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2_Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m",
         "N_z"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/g3b",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2_Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m",
         "N_z"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/g3b",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "N_z",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2_Z",
        "STATEMENT": "m d2z/dt2 = N_z - m g_n",
        "REFS": [
         "z",
         "t",
         "g_n",
         "m",
         "N_z"
        ],
        "EQUATION": "m * D(z, t, 2) = N_z - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/g4",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - (1/2) rho_air C_d A_ref |v| v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - 0.5 * rho_air * C_d * A_ref * abs(v) * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/g4",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - (1/2) rho_air C_d A_ref |v| v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - 0.5 * rho_air * C_d * A_ref * abs(v) * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/g5",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - (1/2) rho_air C_d A_ref |v| v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - 0.5 * rho_air * C_d * A_ref * abs(v) * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/g5",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "rho_air",
        "DIMENSION": "M1 L-3",
        "VALUE": "1.225",
        "UNIT": "kg m-3"
       },
       {
        "NAME": "C_d",
        "DIMENSION": "1"
       },
       {
        "NAME": "A_ref",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x - (1/2) rho_air C_d A_ref |v| v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "rho_air",
         "C_d",
         "A_ref"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - 0.5 * rho_air * C_d * A_ref * abs(v) * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z",
         "t"
        ],
        "EQUATION": "D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/g6",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = -g (gravity)",
        "REFS": [
         "z",
         "t"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ROLE MISMATCH,FREE_Z,z,KNOWN,LAW FREE_Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/g6",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = -g (gravity)",
        "REFS": [
         "z",
         "t"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/g6",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = -g (gravity)",
        "REFS": [
         "z",
         "t"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_draft",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_draft",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/spring_draft",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_draft_eomz",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ROLE MISMATCH,EOM_Z,z,KNOWN,LAW EOM_Z declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/spring_draft_eomz",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/spring_draft_eomz",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_gravity_unbound",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,EOM_Z,[m],LAW EOM_Z names no unknown once the fixed DOFs are applied, and depends on m, which the kernel does not bind: does it hold for every value of m, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/class/spring_gravity_unbound",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/spring_gravity_unbound",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = -m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = -m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_ic2_gap",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "EOM_Y",
        "STATEMENT": "m d2y/dt2 = 0",
        "REFS": [
         "m",
         "y",
         "t"
        ],
        "EQUATION": "m * D(y, t, 2) = 0",
        "ROLE": "EOM(y)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_ic2_gap",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "EOM_Y",
        "STATEMENT": "m d2y/dt2 = 0",
        "REFS": [
         "m",
         "y",
         "t"
        ],
        "EQUATION": "m * D(y, t, 2) = 0",
        "ROLE": "EOM(y)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/spring_ic2_gap",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "EOM_Y",
        "STATEMENT": "m d2y/dt2 = 0",
        "REFS": [
         "m",
         "y",
         "t"
        ],
        "EQUATION": "m * D(y, t, 2) = 0",
        "ROLE": "EOM(y)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[y,DETERMINED,EOM_Y],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x,y],[EOM_X,EOM_Y,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,4],[OFFSETS,[[EOM_X,0],[EOM_Y,0],[KIN,0]],[[v,1],[x,1],[y,2]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_mistakes_final",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_OFF",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "2",
        "UNIT": "cm",
        "STATEMENT": "only motion on the line z = 2 cm is described"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_mistakes_final",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_OFF",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "2",
        "UNIT": "cm",
        "STATEMENT": "only motion on the line z = 2 cm is described"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/spring_mistakes_final",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_OFF",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "2",
        "UNIT": "cm",
        "STATEMENT": "only motion on the line z = 2 cm is described"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/spring_mistakes_gravity",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_mistakes_gravity",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "d2z/dt2 = -g_n",
        "REFS": [
         "z",
         "t",
         "g_n"
        ],
        "EQUATION": "D(z, t, 2) = -g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/spring_mistakes_tpk",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "LT-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTANT:x max: NAME x max is not an identifier]"
  },
  {
   "id": "eom/findings/spring_mistakes_tpk",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "LT-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTANT:x max: NAME x max is not an identifier]"
  },
  {
   "id": "eom/class/spring_mistakes_tpk",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "LT-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     }
    }
   },
   "note": "the TMS is read before the TPK",
   "expect": "[REFUSED,TMS: zone is not an object]"
  },
  {
   "id": "eom/findings/spring_respelled",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "T-1 L1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "5e-2",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m*D(v,t)=-k_s*x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t, 1) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m1",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_respelled",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "T-1 L1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "5e-2",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m*D(v,t)=-k_s*x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t, 1) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m1",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/spring_succ_damped",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "c_d",
        "DIMENSION": "M1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x - c_d v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "c_d"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - c_d * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_succ_damped",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "c_d",
        "DIMENSION": "M1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x - c_d v",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "c_d"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - c_d * v",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/findings/spring_track_draft",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/spring_track_draft",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/spring_track_draft",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[F_n,DETERMINED,EOM_Z],[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[F_n,v,x],[EOM_X,EOM_Z,KIN]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[EOM_Z,0],[KIN,0]],[[F_n,0],[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/corner_coulomb",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "mu_k",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x - mu_k F_n v/|v|",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "mu_k",
         "F_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - mu_k * F_n * v / abs(v)",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/corner_coulomb",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "mu_k",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x - mu_k F_n v/|v|",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "mu_k",
         "F_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - mu_k * F_n * v / abs(v)",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/corner_coulomb",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       },
       {
        "NAME": "mu_k",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x - mu_k F_n v/|v|",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t",
         "mu_k",
         "F_n"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x - mu_k * F_n * v / abs(v)",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = F_n - m g_n",
        "REFS": [
         "m",
         "z",
         "t",
         "F_n",
         "g_n"
        ],
        "EQUATION": "m * D(z, t, 2) = F_n - m * g_n",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[F_n,DETERMINED,EOM_Z],[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[F_n,v,x],[EOM_X,EOM_Z,KIN]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[EOM_Z,0],[KIN,0]],[[F_n,0],[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/corner_fix_t",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_T",
        "TARGET": "t",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "t = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/corner_fix_t",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_T",
        "TARGET": "t",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "t = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/corner_fix_t",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       },
       {
        "NAME": "C_T",
        "TARGET": "t",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "s",
        "STATEMENT": "t = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,FIXED,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/corner_no_eom_x",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?]]]"
  },
  {
   "id": "eom/class/corner_no_eom_x",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/corner_no_eom_x",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN],[z,FIXED,]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/E01",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]]]"
  },
  {
   "id": "eom/class/E01",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS,PROSE]]"
  },
  {
   "id": "eom/map/E01",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]]]"
  },
  {
   "id": "eom/findings/E02",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "w0",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "W0DEF",
        "STATEMENT": "k_s = m w0^2",
        "REFS": [
         "k_s",
         "m",
         "w0"
        ],
        "EQUATION": "k_s = m * w0^2",
        "ROLE": "DEFINITION"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,W0DEF,[k_s,m,w0],LAW W0DEF names no unknown once the fixed DOFs are applied, and depends on k_s, m, w0, which the kernel does not bind: does it hold for every value of k_s, m, w0, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/class/E02",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "w0",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "W0DEF",
        "STATEMENT": "k_s = m w0^2",
        "REFS": [
         "k_s",
         "m",
         "w0"
        ],
        "EQUATION": "k_s = m * w0^2",
        "ROLE": "DEFINITION"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/E02",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       },
       {
        "NAME": "w0",
        "DIMENSION": "T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "W0DEF",
        "STATEMENT": "k_s = m w0^2",
        "REFS": [
         "k_s",
         "m",
         "w0"
        ],
        "EQUATION": "k_s = m * w0^2",
        "ROLE": "DEFINITION"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[W0DEF,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/E03",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[N2,N2B],LAWs N2, N2B each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/E03",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/E03",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,N2],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[KIN,N2,N2B]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/E03_shape",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[N2,N2B],LAWs N2, N2B each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/E03_shape",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/map/E03_shape",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "dv/dt = -k_s x / m",
        "REFS": [
         "v",
         "k_s",
         "x",
         "m",
         "t"
        ],
        "EQUATION": "D(v, t) = -k_s * x / m",
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,N2],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[KIN,N2,N2B]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/class/switch/on-explicit",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "ON"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/class/switch/off-regular-kernel",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[CHECK OFF]]"
  },
  {
   "id": "eom/class/switch/off-under-kernel",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      }
     }
    }
   },
   "note": "CHECK OFF alone",
   "expect": "[STRUCTURE,Structure not Validated at Inception,[CHECK OFF]]"
  },
  {
   "id": "eom/class/switch/off-pde-kernel",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[CHECK OFF]]"
  },
  {
   "id": "eom/class/switch/off-noform-kernel",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x"
        ],
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v"
        ],
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "FREE_Z",
        "STATEMENT": "d2z/dt2 = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "motion confined to z = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[CHECK OFF]]"
  },
  {
   "id": "eom/class/switch/off-tpk-not-read",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": "not a zone",
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "note": "under OFF the TPK is not read",
   "expect": "[STRUCTURE,Structure not Validated at Inception,[CHECK OFF]]"
  },
  {
   "id": "eom/class/switch/on-tpk-read",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": "not a zone",
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "ON"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
   "id": "eom/class/switch/bad-lower",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "on"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: STRUCTURE_CHECK on is not ON or OFF]"
  },
  {
   "id": "eom/class/switch/bad-empty",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": ""
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: STRUCTURE_CHECK  is not ON or OFF]"
  },
  {
   "id": "eom/class/switch/bad-space",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF "
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: STRUCTURE_CHECK OFF  is not ON or OFF]"
  },
  {
   "id": "eom/class/switch/bad-integer",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": 1
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: field STRUCTURE_CHECK has the wrong type]"
  },
  {
   "id": "eom/class/switch/bad-list",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": [
        "OFF"
       ]
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: field STRUCTURE_CHECK has the wrong type]"
  },
  {
   "id": "eom/class/switch/bad-bidi",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OF\u202eF"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: STRUCTURE_CHECK OF<U+202E>F is not ON or OFF]"
  },
  {
   "id": "eom/class/switch/bad-null",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": null
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: field STRUCTURE_CHECK has the wrong type]"
  },
  {
   "id": "eom/class/switch/tms-missing",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: zone is not an object]"
  },
  {
   "id": "eom/class/switch/tms-string",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": "x",
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: zone is not an object]"
  },
  {
   "id": "eom/class/switch/params-missing",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: part PARAMETERS is not an object]"
  },
  {
   "id": "eom/class/switch/params-string",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": "OFF",
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TMS: part PARAMETERS is not an object]"
  },
  {
   "id": "eom/class/switch/tfk-string",
   "fn": "eom_class",
   "input": {
    "tfk": "x"
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/findings/switch/off-not-read",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      }
     }
    }
   },
   "note": "eom_findings reads no switch (S26: the preview shows the map whatever the switch says)",
   "expect": "[OK,[[UNDER,x,[v,x],[N2],unknown x is determined by no law with a declared form (LAW N2 leaves v, x under-determined): which equation determines x?]]]"
  },
  {
   "id": "eom/map/switch/off-not-read",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10,
       "STRUCTURE_CHECK": "OFF"
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/dvar/several-pde",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[X,t]],[MAP,[[X,INDEPENDENT,],[t,INDEPENDENT,],[u,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/class/dvar/several-pde",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PDE]]"
  },
  {
   "id": "eom/class/dvar/several-one-variable",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "note": "SEVERAL with one D variable is analysed as under ONE",
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/class/dvar/one-with-two",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "ONE"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "T1 refuses this TPK; the check itself reads no D_VARIABLES",
   "expect": "[STRUCTURE,Structure not Validated at Inception,[PDE]]"
  },
  {
   "id": "eom/class/dvar/params-not-read",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ],
      "PARAMETERS": "not read"
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/dvar/three-variables",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "Y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_d",
        "DIMENSION": "L2 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "D(u, t) = a_d * D(u, X, 2) + a_d * D(u, Y, 2)",
        "REFS": [
         "X",
         "Y",
         "a_d",
         "t",
         "u"
        ],
        "ROLE": "EOM(u)",
        "EQUATION": "D(u, t) = a_d * D(u, X, 2) + a_d * D(u, Y, 2)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[X,Y,t]],[MAP,[[X,INDEPENDENT,],[Y,INDEPENDENT,],[t,INDEPENDENT,],[u,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/dvar/three-variables",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "Y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_d",
        "DIMENSION": "L2 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "D(u, t) = a_d * D(u, X, 2) + a_d * D(u, Y, 2)",
        "REFS": [
         "X",
         "Y",
         "a_d",
         "t",
         "u"
        ],
        "ROLE": "EOM(u)",
        "EQUATION": "D(u, t) = a_d * D(u, X, 2) + a_d * D(u, Y, 2)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[PDE,[X,Y,t],PDE: not analyzed]]]"
  },
  {
   "id": "eom/findings/dvar/pde-per-law-checks",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "w",
        "DIMENSION": "L1"
       },
       {
        "NAME": "q",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "k",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "D(u, t) = a_d * D(u, X, 2)",
        "REFS": [
         "X",
         "a_d",
         "t",
         "u"
        ],
        "ROLE": "EOM(u)",
        "EQUATION": "D(u, t) = a_d * D(u, X, 2)"
       },
       {
        "NAME": "QL",
        "STATEMENT": "q = k * X",
        "REFS": [
         "X",
         "k",
         "q"
        ],
        "ROLE": "EOM(q)",
        "EQUATION": "q = k * X"
       },
       {
        "NAME": "WL",
        "STATEMENT": "stated in prose",
        "REFS": [
         "w",
         "k"
        ],
        "ROLE": "EOM(w)"
       },
       {
        "NAME": "DUP1",
        "STATEMENT": "D(u, t) = a_d * D(u, X, 2)",
        "REFS": [
         "X",
         "a_d",
         "t",
         "u"
        ],
        "ROLE": "EOM(u)",
        "EQUATION": "D(u, t) = a_d * D(u, X, 2)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "under PDE only ROLE MISMATCH and PROSE run beside the PDE line; no OVER-EOM for DUP1",
   "expect": "[OK,[[ROLE MISMATCH,QL,q,NO DERIVATIVE,LAW QL declares ROLE EOM(q), but its EQUATION has no derivative of q: which ROLE does it have?],[PROSE,WL,[w],LAW WL (ROLE EOM(w)) has no EQUATION and names the unknown w: its equation is outside the analysis; can it be declared in form?],[PDE,[X,t],PDE: not analyzed]]]"
  },
  {
   "id": "eom/map/dvar/constant-variable",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, k) = v",
        "REFS": [
         "k",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, k) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "D(v, k) = -x",
        "REFS": [
         "k",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, k) = -x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "T1 refuses a D variable that is no DOF; the check reads k as known",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[k]],[MAP,[[v,DETERMINED,N2],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/class/dvar/constant-variable",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, k) = v",
        "REFS": [
         "k",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, k) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "D(v, k) = -x",
        "REFS": [
         "k",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, k) = -x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/dvar/scaled-time",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "X",
        "DIMENSION": "1"
       },
       {
        "NAME": "V",
        "DIMENSION": "1"
       },
       {
        "NAME": "tau",
        "DIMENSION": "1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dX/dtau = V",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(X, tau) = V",
        "ROLE": "EOM(X)"
       },
       {
        "NAME": "N2",
        "STATEMENT": "dV/dtau = -X",
        "REFS": [
         "X",
         "V",
         "tau"
        ],
        "EQUATION": "D(V, tau) = -X",
        "ROLE": "EOM(V)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[tau]],[MAP,[[V,DETERMINED,N2],[X,DETERMINED,KIN],[tau,INDEPENDENT,]]],[PARTS,[UNDER,[],[]],[SQUARE,[V,X],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[V,1],[X,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-zero-product",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-zero-spelled",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0.000e3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-minus-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "-0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-nonzero-product",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "2",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-nonzero-bound",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "g_n * z = 0",
        "REFS": [
         "g_n",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "g_n * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "2",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-zero-alone",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "z = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/value-one-alone",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "z = 0",
        "REFS": [
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "1",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/derivative-times",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * D(z, t) = 0",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * D(z, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/derivative-over",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(z, t) / k = 0",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(z, t) / k = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/divide-by-derivative",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k / D(z, t) = 0",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k / D(z, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/functions-to-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "sin(D(z, t)) + abs(D(z, t)) + sqrt(D(z, t)) - tan(D(z, t)) = -D(z, t, 2)",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "sin(D(z, t)) + abs(D(z, t)) + sqrt(D(z, t)) - tan(D(z, t)) = -D(z, t, 2)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/cos-of-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "cos(D(z, t)) = 1",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "cos(D(z, t)) = 1"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/exp-of-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "exp(D(z, t)) = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "exp(D(z, t)) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/ln-of-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "ln(D(z, t)) = k",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "ln(D(z, t)) = k"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/power-positive",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(z, t)^2 = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(z, t)^2 = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/power-root",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(z, t)^(1/2) = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(z, t)^(1/2) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/power-negative",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(z, t)^(-1) = k",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(z, t)^(-1) = k"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/power-of-sum",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "(D(z, t) - D(z, t, 2))^3 = -D(z, t)",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "(D(z, t) - D(z, t, 2))^3 = -D(z, t)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/literal-zero-times-unknown",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "0 * v = g_n",
        "REFS": [
         "g_n",
         "v"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "0 * v = g_n"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/literal-zero-spelled",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "0.0 * v = 0",
        "REFS": [
         "v"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "0.0 * v = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/sum-not-zero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * D(z, t) + g_n = 0",
        "REFS": [
         "g_n",
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * D(z, t) + g_n = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,BOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/zero/value-nonzero-product",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "2",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,L,[k],LAW L names no unknown once the fixed DOFs are applied, and depends on k, which the kernel does not bind: does it hold for every value of k, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/findings/zero/value-zero-product",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/findings/zero/divide-by-derivative",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k / D(z, t) = 0",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k / D(z, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,L,[k],LAW L names no unknown once the fixed DOFs are applied, and depends on k, which the kernel does not bind: does it hold for every value of k, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/findings/zero/cos-of-zero",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "cos(D(z, t)) = 1",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "cos(D(z, t)) = 1"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "fully bound: T3's ground fragment",
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/map/zero/two-fixes-one-nonzero",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * z = 0",
        "REFS": [
         "k",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * z = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       },
       {
        "NAME": "C_Z2",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "2",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "the value propagates as zero only when every FIX of the DOF is zero (T3 refuses two values)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/multiplier-kept",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "F_n",
        "DIMENSION": "M1 L1 T-2"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * D(z, t) = F_n",
        "REFS": [
         "F_n",
         "k",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "k * D(z, t) = F_n"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[F_n,DETERMINED,L],[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[F_n,v,x],[KIN,L,N2]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[L,0],[N2,0]],[[F_n,0],[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/zero/removed-derivative",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "w",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(w, t) = 0",
        "REFS": [
         "t",
         "w"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(w, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       },
       {
        "NAME": "C_W",
        "TARGET": "w",
        "ACTION": "REMOVE",
        "STATEMENT": "a constraint"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[w,REMOVED,],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[[L,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/zero/removed-derivative",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "w",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "D(w, t) = 0",
        "REFS": [
         "t",
         "w"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(w, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       },
       {
        "NAME": "C_W",
        "TARGET": "w",
        "ACTION": "REMOVE",
        "STATEMENT": "a constraint"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,L,[t,w],LAW L names no unknown once the fixed DOFs are applied, and depends on t, w, which the kernel does not bind: does it hold for every value of t, w, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/findings/zero/input-in-closed-law",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "xi = 0",
        "REFS": [
         "xi"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "xi = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,L,[xi],LAW L names no unknown once the fixed DOFs are applied, and depends on xi, which the kernel does not bind: does it hold for every value of xi, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/findings/zero/variable-in-closed-law",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "g_n * t = 0",
        "REFS": [
         "g_n",
         "t"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "g_n * t = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "the D variable is known and unbound: listed as CLOSED (RD-R2-8)",
   "expect": "[OK,[[CLOSED,L,[t],LAW L names no unknown once the fixed DOFs are applied, and depends on t, which the kernel does not bind: does it hold for every value of t, or is a force or an unknown missing?]]]"
  },
  {
   "id": "eom/map/zero/invariant-not-closed",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * D(z, t) = 0",
        "REFS": [
         "k",
         "t",
         "z"
        ],
        "ROLE": "INVARIANT",
        "EQUATION": "k * D(z, t) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "3",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[L]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/role/no-derivative",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * x + m * v / t = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "k * x + m * v / t = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ROLE MISMATCH,L,v,NO DERIVATIVE,LAW L declares ROLE EOM(v), but its EQUATION has no derivative of v: which ROLE does it have?]]]"
  },
  {
   "id": "eom/map/role/no-derivative",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "L",
        "STATEMENT": "k * x + m * v / t = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "k * x + m * v / t = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,L],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,L]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,1],[OFFSETS,[[KIN,0],[L,0]],[[v,0],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/role/known-kinds",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "w",
        "DIMENSION": "L1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x + xi",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x",
         "xi"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x + xi"
       },
       {
        "NAME": "LZ",
        "STATEMENT": "D(z, t, 2) = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "EOM(z)",
        "EQUATION": "D(z, t, 2) = 0"
       },
       {
        "NAME": "LW",
        "STATEMENT": "D(w, t) = 0",
        "REFS": [
         "t",
         "w"
        ],
        "ROLE": "EOM(w)",
        "EQUATION": "D(w, t) = 0"
       },
       {
        "NAME": "LXI",
        "STATEMENT": "D(xi, t) = 0",
        "REFS": [
         "t",
         "xi"
        ],
        "ROLE": "EOM(xi)",
        "EQUATION": "D(xi, t) = 0"
       },
       {
        "NAME": "LT",
        "STATEMENT": "t = t",
        "REFS": [
         "t"
        ],
        "ROLE": "EOM(t)",
        "EQUATION": "t = t"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       },
       {
        "NAME": "C_W",
        "TARGET": "w",
        "ACTION": "REMOVE",
        "STATEMENT": "a constraint"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[CLOSED,LT,[t],LAW LT names no unknown once the fixed DOFs are applied, and depends on t, which the kernel does not bind: does it hold for every value of t, or is a force or an unknown missing?],[CLOSED,LW,[t,w],LAW LW names no unknown once the fixed DOFs are applied, and depends on t, w, which the kernel does not bind: does it hold for every value of t, w, or is a force or an unknown missing?],[CLOSED,LXI,[t,xi],LAW LXI names no unknown once the fixed DOFs are applied, and depends on t, xi, which the kernel does not bind: does it hold for every value of t, xi, or is a force or an unknown missing?],[ROLE MISMATCH,LT,t,NO DERIVATIVE,LAW LT declares ROLE EOM(t), but its EQUATION has no derivative of t: which ROLE does it have?],[ROLE MISMATCH,LT,t,KNOWN,LAW LT declares ROLE EOM(t), but t is known (INDEPENDENT): which ROLE does it have?],[ROLE MISMATCH,LW,w,KNOWN,LAW LW declares ROLE EOM(w), but w is known (REMOVED): which ROLE does it have?],[ROLE MISMATCH,LXI,xi,KNOWN,LAW LXI declares ROLE EOM(xi), but xi is known (INPUT): which ROLE does it have?],[ROLE MISMATCH,LZ,z,KNOWN,LAW LZ declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/class/role/known-kinds",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "w",
        "DIMENSION": "L1"
       },
       {
        "NAME": "xi",
        "DIMENSION": "M1 L1 T-2",
        "ROLE": "INPUT"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x + xi",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x",
         "xi"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x + xi"
       },
       {
        "NAME": "LZ",
        "STATEMENT": "D(z, t, 2) = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "EOM(z)",
        "EQUATION": "D(z, t, 2) = 0"
       },
       {
        "NAME": "LW",
        "STATEMENT": "D(w, t) = 0",
        "REFS": [
         "t",
         "w"
        ],
        "ROLE": "EOM(w)",
        "EQUATION": "D(w, t) = 0"
       },
       {
        "NAME": "LXI",
        "STATEMENT": "D(xi, t) = 0",
        "REFS": [
         "t",
         "xi"
        ],
        "ROLE": "EOM(xi)",
        "EQUATION": "D(xi, t) = 0"
       },
       {
        "NAME": "LT",
        "STATEMENT": "t = t",
        "REFS": [
         "t"
        ],
        "ROLE": "EOM(t)",
        "EQUATION": "t = t"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       },
       {
        "NAME": "C_W",
        "TARGET": "w",
        "ACTION": "REMOVE",
        "STATEMENT": "a constraint"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/role/prose-known",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "PZ",
        "STATEMENT": "stated in prose",
        "REFS": [
         "z",
         "t"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "ROLE is read on a prose law too",
   "expect": "[OK,[[ROLE MISMATCH,PZ,z,KNOWN,LAW PZ declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?]]]"
  },
  {
   "id": "eom/findings/role/multiplier-no-finding",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "vx",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "vy",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "lam",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "L_p",
        "DIMENSION": "L1"
       },
       {
        "NAME": "g_n",
        "DIMENSION": "L1 T-2",
        "VALUE": "9.80665",
        "UNIT": "m s-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KX",
        "STATEMENT": "dx/dt = vx",
        "REFS": [
         "x",
         "vx",
         "t"
        ],
        "EQUATION": "D(x, t) = vx",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KY",
        "STATEMENT": "dy/dt = vy",
        "REFS": [
         "y",
         "vy",
         "t"
        ],
        "EQUATION": "D(y, t) = vy",
        "ROLE": "EOM(y)"
       },
       {
        "NAME": "NX",
        "STATEMENT": "m dvx/dt = -lam x",
        "REFS": [
         "m",
         "vx",
         "t",
         "lam",
         "x"
        ],
        "EQUATION": "m * D(vx, t) = -lam * x",
        "ROLE": "EOM(vx)"
       },
       {
        "NAME": "NY",
        "STATEMENT": "m dvy/dt = -lam y - m g_n",
        "REFS": [
         "m",
         "vy",
         "t",
         "lam",
         "y",
         "g_n"
        ],
        "EQUATION": "m * D(vy, t) = -lam * y - m * g_n",
        "ROLE": "EOM(vy)"
       },
       {
        "NAME": "ROD",
        "STATEMENT": "x^2 + y^2 = L^2",
        "REFS": [
         "x",
         "y",
         "L_p"
        ],
        "EQUATION": "x^2 + y^2 = L_p^2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "lam, determined by NX and NY with ROD CONSTRAINT, is a multiplier: no finding",
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/findings/overeom/shape-plain",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "D(v, t) = -k * x / m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-negated-factor",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "-m * D(v, t) = k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "-m * D(v, t) = k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-negated-product",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "-(m * D(v, t)) = k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "-(m * D(v, t)) = k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-denominator",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) / m = -k * x / m^2",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "D(v, t) / m = -k * x / m^2"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-constant-sum",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "(m + M) * D(v, t) = -k * x",
        "REFS": [
         "M",
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "(m + M) * D(v, t) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-right-side",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "-k * x = m * D(v, t)",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "-k * x = m * D(v, t)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-parenthesized",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "((m) * (D(v, t))) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "((m) * (D(v, t))) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/no-shape-dof-factor",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "x * D(v, t) = -k * x",
        "REFS": [
         "k",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "x * D(v, t) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[KIN,L2,N2],[v,x],LAWs KIN, L2, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/no-shape-two-derivatives",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) * D(x, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "D(v, t) * D(x, t) = -k * x / m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[KIN,L2,N2],[v,x],LAWs KIN, L2, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/no-shape-sum",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) + k * x / m = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "D(v, t) + k * x / m = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[KIN,L2,N2],[v,x],LAWs KIN, L2, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/no-shape-derivative-in-denominator",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "m / D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "m / D(v, t) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[KIN,L2,N2],[v,x],LAWs KIN, L2, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/no-shape-other-order",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t, 2) = -k * v / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v"
        ],
        "ROLE": "CONSTITUTIVE",
        "EQUATION": "D(v, t, 2) = -k * v / m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[KIN,L2,N2],[v,x],LAWs KIN, L2, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/invariant-excluded",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "INVARIANT",
        "EQUATION": "D(v, t) = -k * x / m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/findings/overeom/role-three",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, t) = -k * x / m"
       },
       {
        "NAME": "L3",
        "STATEMENT": "k * x + m * D(v, t) = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "k * x + m * D(v, t) = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[L2,L3,N2],LAWs L2, L3, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/class/overeom/role-three",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, t) = -k * x / m"
       },
       {
        "NAME": "L3",
        "STATEMENT": "k * x + m * D(v, t) = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "k * x + m * D(v, t) = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS]]"
  },
  {
   "id": "eom/findings/overeom/role-no-shape",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "L2",
        "STATEMENT": "k * x + m * D(v, t) = 0",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "k * x + m * D(v, t) = 0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "the ROLE clause needs no shape",
   "expect": "[OK,[[OVER-EOM,v,[L2,N2],LAWs L2, N2 each state the motion of v: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/role-and-extra-redundancy",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_0",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, t) = -k * x / m"
       },
       {
        "NAME": "IC",
        "STATEMENT": "x = x_0",
        "REFS": [
         "x",
         "x_0"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "x = x_0"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "OVER-EOM sets N2B aside; the redundancy left is OVER",
   "expect": "[OK,[[OVER-EOM,v,[N2,N2B],LAWs N2, N2B each state the motion of v: are they one equation, or is one to be removed?],[OVER,[IC,KIN,N2],[v,x],LAWs IC, KIN, N2 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/findings/overeom/two-groups",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "KIN2",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2B",
        "STATEMENT": "D(v, t) = -k * x / m",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(v, t) = -k * x / m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER-EOM,v,[N2,N2B],LAWs N2, N2B each state the motion of v: are they one equation, or is one to be removed?],[OVER-EOM,x,[KIN,KIN2],LAWs KIN, KIN2 each state the motion of x: are they one equation, or is one to be removed?]]]"
  },
  {
   "id": "eom/findings/overeom/shape-on-known-not-listed",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "M",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "Z1",
        "STATEMENT": "D(z, t, 2) = 0",
        "REFS": [
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(z, t, 2) = 0"
       },
       {
        "NAME": "Z2",
        "STATEMENT": "m * D(z, t, 2) = 0",
        "REFS": [
         "m",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "m * D(z, t, 2) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "the shape clause reads unknowns only; both laws reduce to 0 = 0",
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/findings/under/two-blocks",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       },
       {
        "NAME": "d",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b = k",
        "REFS": [
         "a",
         "b",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a + b = k"
       },
       {
        "NAME": "P2",
        "STATEMENT": "c + d = k",
        "REFS": [
         "c",
         "d",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "c + d = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,b,[a,b],[P1],unknown b is determined by no law with a declared form (LAW P1 leaves a, b under-determined): which equation determines b?],[UNDER,d,[c,d],[P2],unknown d is determined by no law with a declared form (LAW P2 leaves c, d under-determined): which equation determines d?]]]"
  },
  {
   "id": "eom/map/under/two-blocks",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       },
       {
        "NAME": "d",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b = k",
        "REFS": [
         "a",
         "b",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a + b = k"
       },
       {
        "NAME": "P2",
        "STATEMENT": "c + d = k",
        "REFS": [
         "c",
         "d",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "c + d = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[a,UNDER,P1],[b,NO LAW,],[c,UNDER,P2],[d,NO LAW,]]],[PARTS,[UNDER,[a,b,c,d],[P1,P2]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/under/role-tier",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "L",
        "STATEMENT": "D(x, t) + D(v, t) = k",
        "REFS": [
         "k",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) + D(v, t) = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "sigma ties (1, 1); the ROLE EOM(x) keeps x",
   "expect": "[OK,[[UNDER,v,[v,x],[L],unknown v is determined by no law with a declared form (LAW L leaves v, x under-determined): which equation determines v?]]]"
  },
  {
   "id": "eom/findings/under/name-tier",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "L",
        "STATEMENT": "D(x, t) + D(v, t) = k",
        "REFS": [
         "k",
         "t",
         "v",
         "x"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "D(x, t) + D(v, t) = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "sigma and ROLE tie; NAME order gives L to v",
   "expect": "[OK,[[UNDER,x,[v,x],[L],unknown x is determined by no law with a declared form (LAW L leaves v, x under-determined): which equation determines x?]]]"
  },
  {
   "id": "eom/findings/under/sigma-tier",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "L",
        "STATEMENT": "D(x, t, 2) + D(v, t) = k",
        "REFS": [
         "k",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "D(x, t, 2) + D(v, t) = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "the higher derivative order wins over the ROLE",
   "expect": "[OK,[[UNDER,v,[v,x],[L],unknown v is determined by no law with a declared form (LAW L leaves v, x under-determined): which equation determines v?]]]"
  },
  {
   "id": "eom/findings/under/all-closed",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       }
      ],
      "LAW": [
       {
        "NAME": "LZ",
        "STATEMENT": "m * D(z, t, 2) = 0",
        "REFS": [
         "m",
         "t",
         "z"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "m * D(z, t, 2) = 0"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[UNDER,x,[x],[],unknown x is named by no law with a declared form: which equation determines x?]]]"
  },
  {
   "id": "eom/findings/under/invariant-only",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1 T-1"
       }
      ],
      "LAW": [
       {
        "NAME": "I",
        "STATEMENT": "D(x, t) = k",
        "REFS": [
         "k",
         "t",
         "x"
        ],
        "ROLE": "INVARIANT",
        "EQUATION": "D(x, t) = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "a formed INVARIANT law: not NO FORM; leaves the matching",
   "expect": "[OK,[[UNDER,x,[x],[],unknown x is named by no law with a declared form: which equation determines x?]]]"
  },
  {
   "id": "eom/findings/over/two-blocks",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       },
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "j",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a = k",
        "REFS": [
         "a",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a = k"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = h",
        "REFS": [
         "a",
         "h"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a = h"
       },
       {
        "NAME": "P3",
        "STATEMENT": "b = k",
        "REFS": [
         "b",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "b = k"
       },
       {
        "NAME": "P4",
        "STATEMENT": "b = j",
        "REFS": [
         "b",
         "j"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "b = j"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[OVER,[P1,P2],[a],LAWs P1, P2 give more equations than the unknown a they determine: which law is implied by the others, or is one an independent claim?],[OVER,[P3,P4],[b],LAWs P3, P4 give more equations than the unknown b they determine: which law is implied by the others, or is one an independent claim?]]]"
  },
  {
   "id": "eom/map/over/two-blocks",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       },
       {
        "NAME": "h",
        "DIMENSION": "L1"
       },
       {
        "NAME": "j",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a = k",
        "REFS": [
         "a",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a = k"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = h",
        "REFS": [
         "a",
         "h"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a = h"
       },
       {
        "NAME": "P3",
        "STATEMENT": "b = k",
        "REFS": [
         "b",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "b = k"
       },
       {
        "NAME": "P4",
        "STATEMENT": "b = j",
        "REFS": [
         "b",
         "j"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "b = j"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[a,OVER,P1],[b,OVER,P3]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[a,b],[P1,P2,P3,P4]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/pryce/index-two",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "y",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "K",
        "STATEMENT": "D(x, t) = y",
        "REFS": [
         "t",
         "x",
         "y"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = y"
       },
       {
        "NAME": "C",
        "STATEMENT": "x = k * sin(t)",
        "REFS": [
         "k",
         "t",
         "x"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "x = k * sin(t)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[x,DETERMINED,C],[y,DETERMINED,K]]],[PARTS,[UNDER,[],[]],[SQUARE,[x,y],[C,K]],[OVER,[],[]]],[INDEX,2],[INITIAL_VALUES,0],[OFFSETS,[[C,1],[K,0]],[[x,1],[y,0]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/pryce/second-order",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m * D(x, t, 2) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "m * D(x, t, 2) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[x,DETERMINED,N2]]],[PARTS,[UNDER,[],[]],[SQUARE,[x],[N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[N2,0]],[[x,2]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/pryce/third-order",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "T-3"
       }
      ],
      "LAW": [
       {
        "NAME": "J",
        "STATEMENT": "D(x, t, 3) = -k * x",
        "REFS": [
         "k",
         "t",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t, 3) = -k * x"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[x,DETERMINED,J]]],[PARTS,[UNDER,[],[]],[SQUARE,[x],[J]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,3],[OFFSETS,[[J,0]],[[x,3]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/pryce/empty-square",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,UNDER,N2],[x,NO LAW,]]],[PARTS,[UNDER,[v,x],[N2]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/noform/no-unknown",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       }
      ],
      "LAW": [
       {
        "NAME": "PZ",
        "STATEMENT": "stated in prose",
        "REFS": [
         "z",
         "m"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ROLE MISMATCH,PZ,z,KNOWN,LAW PZ declares ROLE EOM(z), but z is known (FIXED): which ROLE does it have?],[NO FORM,[],no LAW carries an EQUATION and the kernel has no unknown: is that intended?]]]"
  },
  {
   "id": "eom/class/noform/no-unknown",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       }
      ],
      "LAW": [
       {
        "NAME": "PZ",
        "STATEMENT": "stated in prose",
        "REFS": [
         "z",
         "m"
        ],
        "ROLE": "EOM(z)"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_Z",
        "TARGET": "z",
        "ACTION": "FIX",
        "STATEMENT": "a constraint",
        "VALUE": "0",
        "UNIT": "m"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,Structure not Validated at Inception,[FINDINGS,NO FORM]]"
  },
  {
   "id": "eom/findings/noform/no-law-kind",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[NO FORM,[x],no LAW carries an EQUATION: which law gives the equation of the unknown x?]]]"
  },
  {
   "id": "eom/map/noform/no-law-kind",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": []
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,NO FORM],[D_VARIABLES,[]],[MAP,[[x,NO LAW,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/map/prose/invariant-and-constant-only",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "PI",
        "STATEMENT": "stated in prose",
        "REFS": [
         "x",
         "v",
         "m",
         "k"
        ],
        "ROLE": "INVARIANT"
       },
       {
        "NAME": "PC",
        "STATEMENT": "stated in prose",
        "REFS": [
         "m",
         "k"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,N2]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[N2,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[PI]],[PROSE,[]]]]"
  },
  {
   "id": "eom/findings/prose/invariant-and-constant-only",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "PI",
        "STATEMENT": "stated in prose",
        "REFS": [
         "x",
         "v",
         "m",
         "k"
        ],
        "ROLE": "INVARIANT"
       },
       {
        "NAME": "PC",
        "STATEMENT": "stated in prose",
        "REFS": [
         "m",
         "k"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "an INVARIANT prose law and a prose law naming no unknown print nothing",
   "expect": "[OK,[]]"
  },
  {
   "id": "eom/class/prose/invariant-and-constant-only",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "D(x, t) = v",
        "REFS": [
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(x)",
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "N2",
        "STATEMENT": "m * D(v, t) = -k * x",
        "REFS": [
         "k",
         "m",
         "t",
         "v",
         "x"
        ],
        "ROLE": "EOM(v)",
        "EQUATION": "m * D(v, t) = -k * x"
       },
       {
        "NAME": "PI",
        "STATEMENT": "stated in prose",
        "REFS": [
         "x",
         "v",
         "m",
         "k"
        ],
        "ROLE": "INVARIANT"
       },
       {
        "NAME": "PC",
        "STATEMENT": "stated in prose",
        "REFS": [
         "m",
         "k"
        ],
        "ROLE": "CONSTITUTIVE"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/unread/other-kinds",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": "x",
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": 5
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": 7
    }
   },
   "note": "ASSUMPTION, BOUNDARY and the TrM are not read",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,EOM_X],[x,DETERMINED,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[EOM_X,KIN]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[EOM_X,0],[KIN,0]],[[v,1],[x,1]]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/class/unread/fields",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "note": "DIMENSION, STATEMENT and a formed law's REFS are not read",
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/class/unread/constraint-fields",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": 5,
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": 5,
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[STRUCTURE,structurally regular]"
  },
  {
   "id": "eom/map/unread/remove-value",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_0",
        "DIMENSION": "L1",
        "VALUE": "0.01",
        "UNIT": "m"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "IC",
        "STATEMENT": "x(0) = x_0",
        "REFS": [
         "x",
         "x_0"
        ],
        "EQUATION": "x = x_0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_R",
        "TARGET": "x",
        "ACTION": "REMOVE",
        "VALUE": 5,
        "STATEMENT": "s"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "note": "a REMOVE's VALUE is not read (T1 forbids it)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,N2],[x,REMOVED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v],[KIN,N2]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[[IC,UNBOUND]]],[INVARIANT,[]],[PROSE,[]]]]"
  },
  {
   "id": "eom/register/e01-settled",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "E01: v's equation of motion is derived in the register; EOM-0 settles; the prose ACTION stays listed",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-1],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-1]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-1,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-1]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-no-records",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": []
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-stale-held",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "HELD",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "a record that does not stand is ignored (S24)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-stale-refuted",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "REFUTED",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "a record that does not stand is ignored (S24)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-stale-withdrawn",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "WITHDRAWN",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "a record that does not stand is ignored (S24)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-stale-struck",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "STRUCK",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "STRUCK is retired and VOID is no status (tpm_record_schema 0.2.0, 6.9): refused (12.1)",
   "expect": "[REFUSED,RECORD:RR-1: STATUS STRUCK is not a status word]"
  },
  {
   "id": "eom/register/e01-stale-void",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "VOID",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "STRUCK is retired and VOID is no status (tpm_record_schema 0.2.0, 6.9): refused (12.1)",
   "expect": "[REFUSED,RECORD:RR-1: STATUS VOID is not a status word]"
  },
  {
   "id": "eom/register/e01-standing-words",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-3",
      "STATUS": "ESTABLISHED",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-4",
      "STATUS": "HELD",
      "ROLE": "EOM(x)",
      "EQUATION": "D(x, t) = v"
     }
    ]
   },
   "note": "PROVISIONAL and ESTABLISHED stand; HELD, REFUTED and WITHDRAWN do not (12.1)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-3],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-3]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-3,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-3]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-no-role",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-2",
      "STATUS": "PROVISIONAL",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "a record declaring no ROLE enters nothing (S23)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-invariant-role",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-2",
      "STATUS": "PROVISIONAL",
      "ROLE": "INVARIANT",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "note": "INVARIANT does not enter the matching",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-no-equation",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-2",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)"
     }
    ]
   },
   "note": "a record without a declared form enters nothing",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,NO LAW,],[x,UNDER,KIN]]],[PARTS,[UNDER,[v,x],[KIN]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[UNDER,v,[v,x],[KIN],unknown v is determined by no law with a declared form (LAW KIN leaves v, x under-determined): which equation determines v?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/e01-initial-value-assumption",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-7",
      "STATUS": "PROVISIONAL",
      "EQUATION": "x = x_max"
     }
    ]
   },
   "note": "an initial value's ASSUMPTION record declares no ROLE (S23)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-1],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-1]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-1,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-1]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-initial-value-with-role",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-7",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTRAINT",
      "EQUATION": "x = x_max"
     }
    ]
   },
   "note": "an initial value given a ROLE over-determines (the A25 false OVER that S23 avoids)",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,RR-1],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[KIN,RR-1,RR-7]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[OVER,[KIN,RR-1,RR-7],[v,x],LAW KIN and RECORDs RR-1, RR-7 give more equations than the unknowns v, x they determine: which law is implied by the others, or is one an independent claim?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-1,RR-7]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-duplicate-eom",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-2",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) = -k_s * x / m"
     }
    ]
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,RR-1],[x,OVER,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[KIN,RR-1,RR-2]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[OVER-EOM,v,[RR-1,RR-2],RECORDs RR-1, RR-2 each state the motion of v: are they one equation, or is one to be removed?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-1,RR-2]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-record-order",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-10",
      "STATUS": "PROVISIONAL",
      "ROLE": "DEFINITION",
      "EQUATION": "k_s = m * k_s / m"
     },
     {
      "ID": "RR-9",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "AB-3",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTITUTIVE",
      "EQUATION": "x_max = x_max"
     },
     {
      "ID": "RR-2",
      "STATUS": "VOID",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) = 0"
     }
    ]
   },
   "note": "VOID is no status: refused (12.1)",
   "expect": "[REFUSED,RECORD:RR-2: STATUS VOID is not a status word]"
  },
  {
   "id": "eom/register/e01-record-order-withdrawn",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-10",
      "STATUS": "PROVISIONAL",
      "ROLE": "DEFINITION",
      "EQUATION": "k_s = m * k_s / m"
     },
     {
      "ID": "RR-9",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "AB-3",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTITUTIVE",
      "EQUATION": "x_max = x_max"
     },
     {
      "ID": "RR-2",
      "STATUS": "WITHDRAWN",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) = 0"
     }
    ]
   },
   "note": "IDs sorted by prefix, then n numerically; a WITHDRAWN record ignored",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,RR-9],[x,DETERMINED,KIN]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[KIN,RR-9]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[KIN,0],[RR-9,0]],[[v,1],[x,1]]],[CLOSED,[[AB-3,BOUND],[RR-10,UNBOUND]]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[CLOSED,RR-10,[k_s,m],RECORD RR-10 names no unknown once the fixed DOFs are applied, and depends on k_s, m, which the kernel does not bind: does it hold for every value of k_s, m, or is a force or an unknown missing?],[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?]],[USED,[AB-3,RR-9,RR-10]],[SETTLED,[v]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/e01-record-pde",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-5",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTRAINT",
      "EQUATION": "D(x, k_s) = v"
     }
    ]
   },
   "note": "a second D variable: not analyzed, nothing settled",
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[k_s,t]],[MAP,[[t,INDEPENDENT,],[v,NOT ANALYZED,],[x,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[ACTION,[v,x]]]]],[[PROSE,ACTION,[v,x],LAW ACTION (ROLE EOM(v)) has no EQUATION and names the unknowns v, x: its equation is outside the analysis; can it be declared in form?],[PDE,[k_s,t],PDE: not analyzed]],[USED,[RR-1,RR-5]],[SETTLED,[]],[OPEN,[v]]]"
  },
  {
   "id": "eom/register/a12-settled",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       }
      ],
      "LAW": [
       {
        "NAME": "N2",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(x)",
      "EQUATION": "D(x, t) = v"
     }
    ]
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,DETERMINED,N2],[x,DETERMINED,RR-1]]],[PARTS,[UNDER,[],[]],[SQUARE,[v,x],[N2,RR-1]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,2],[OFFSETS,[[N2,0],[RR-1,0]],[[v,1],[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]],[],[USED,[RR-1]],[SETTLED,[x]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/a27a-settled-by-other",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "L_0",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_1",
        "DIMENSION": "L1"
       },
       {
        "NAME": "L_2",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b + c = L_0",
        "REFS": [
         "a",
         "b",
         "c",
         "L_0"
        ],
        "EQUATION": "a + b + c = L_0",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P2",
        "STATEMENT": "a = L_1",
        "REFS": [
         "a",
         "L_1"
        ],
        "EQUATION": "a = L_1",
        "ROLE": "CONSTRAINT"
       },
       {
        "NAME": "P3",
        "STATEMENT": "2 a = L_2",
        "REFS": [
         "a",
         "L_2"
        ],
        "EQUATION": "2 * a = L_2",
        "ROLE": "CONSTRAINT"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTRAINT",
      "EQUATION": "b = L_2"
     }
    ]
   },
   "note": "c is settled when the under part empties, whichever unknown the record names",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[a,OVER,P2],[b,DETERMINED,RR-1],[c,DETERMINED,P1]]],[PARTS,[UNDER,[],[]],[SQUARE,[b,c],[P1,RR-1]],[OVER,[a],[P2,P3]]],[INDEX,1],[INITIAL_VALUES,0],[OFFSETS,[[P1,0],[RR-1,0]],[[b,0],[c,0]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]],[[OVER,[P2,P3],[a],LAWs P2, P3 give more equations than the unknown a they determine: which law is implied by the others, or is one an independent claim?]],[USED,[RR-1]],[SETTLED,[c]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/under-block-partial",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "a",
        "DIMENSION": "L1"
       },
       {
        "NAME": "b",
        "DIMENSION": "L1"
       },
       {
        "NAME": "c",
        "DIMENSION": "L1"
       },
       {
        "NAME": "d",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "k",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "P1",
        "STATEMENT": "a + b + c = k",
        "REFS": [
         "a",
         "b",
         "c",
         "k"
        ],
        "ROLE": "CONSTRAINT",
        "EQUATION": "a + b + c = k"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "CONSTRAINT",
      "EQUATION": "a = k"
     }
    ]
   },
   "note": "settled means outside the combined under part: the TFK's UNDER list is b, c, d; a record naming a leaves b, c under-determined and d unnamed, so none settles",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[]],[MAP,[[a,DETERMINED,RR-1],[b,UNDER,P1],[c,NO LAW,],[d,NO LAW,]]],[PARTS,[UNDER,[b,c,d],[P1]],[SQUARE,[a],[RR-1]],[OVER,[],[]]],[INDEX,1],[INITIAL_VALUES,0],[OFFSETS,[[RR-1,0]],[[a,0]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]],[[UNDER,c,[b,c],[P1],unknown c is determined by no law with a declared form (LAW P1 leaves b, c under-determined): which equation determines c?],[UNDER,d,[d],[],unknown d is named by no law with a declared form: which equation determines d?]],[USED,[RR-1]],[SETTLED,[]],[OPEN,[b,c,d]]]"
  },
  {
   "id": "eom/register/spring-regular-unchanged",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     }
    ]
   },
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[v,OVER,EOM_X],[x,OVER,KIN],[z,FIXED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[v,x],[EOM_X,KIN,RR-1]]],[INDEX,0],[INITIAL_VALUES,0],[OFFSETS,[],[]],[CLOSED,[[EOM_Z,ZERO]]],[INVARIANT,[]],[PROSE,[]]],[[OVER-EOM,v,[EOM_X,RR-1],LAW EOM_X and RECORD RR-1 each state the motion of v: are they one equation, or is one to be removed?]],[USED,[RR-1]],[SETTLED,[]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/a10a-pde-tfk",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "PARAMETERS": {
       "D_VARIABLES": "SEVERAL"
      },
      "DOF": [
       {
        "NAME": "u",
        "DIMENSION": "TH1"
       },
       {
        "NAME": "X",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "alpha_d",
        "DIMENSION": "L2 T-1"
       },
       {
        "NAME": "L_rod",
        "DIMENSION": "L1"
       }
      ],
      "LAW": [
       {
        "NAME": "HEAT",
        "STATEMENT": "du/dt = alpha d2u/dX2",
        "REFS": [
         "u",
         "t",
         "alpha_d",
         "X"
        ],
        "EQUATION": "D(u, t) = alpha_d * D(u, X, 2)",
        "ROLE": "EOM(u)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(u)",
      "EQUATION": "D(u, t) = 0"
     }
    ]
   },
   "expect": "[OK,[[ANALYSIS,PDE],[D_VARIABLES,[X,t]],[MAP,[[X,INDEPENDENT,],[t,INDEPENDENT,],[u,NOT ANALYZED,]]],[PARTS,[UNDER,[],[]],[SQUARE,[],[]],[OVER,[],[]]],[INDEX,NONE],[INITIAL_VALUES,NONE],[OFFSETS,[],[]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[]]],[[PDE,[X,t],PDE: not analyzed]],[USED,[RR-1]],[SETTLED,[]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/record-undeclared-variable",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, D_) = 0"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: EQUATION names D_, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/register/a23-noform-with-records",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "a_r",
        "DIMENSION": "T-1"
       },
       {
        "NAME": "tau_d",
        "DIMENSION": "T1"
       }
      ],
      "LAW": [
       {
        "NAME": "DDE",
        "STATEMENT": "dx/dt = -a_r x(t - tau_d)",
        "REFS": [
         "x",
         "t",
         "a_r",
         "tau_d"
        ],
        "ROLE": "EOM(x)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(x)",
      "EQUATION": "D(x, t) = -a_r * x"
     }
    ]
   },
   "note": "the TFK alone has no form, so no UNDER list; the record gives the analysis its form",
   "expect": "[OK,[[ANALYSIS,RUN],[D_VARIABLES,[t]],[MAP,[[t,INDEPENDENT,],[x,DETERMINED,RR-1]]],[PARTS,[UNDER,[],[]],[SQUARE,[x],[RR-1]],[OVER,[],[]]],[INDEX,0],[INITIAL_VALUES,1],[OFFSETS,[[RR-1,0]],[[x,1]]],[CLOSED,[]],[INVARIANT,[]],[PROSE,[[DDE,[x]]]]],[[PROSE,DDE,[x],LAW DDE (ROLE EOM(x)) has no EQUATION and names the unknown x: its equation is outside the analysis; can it be declared in form?]],[USED,[RR-1]],[SETTLED,[]],[OPEN,[]]]"
  },
  {
   "id": "eom/register/stale-malformed-still-read",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "HELD",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * g"
     }
    ]
   },
   "note": "every record is read whole, standing or not",
   "expect": "[REFUSED,RECORD:RR-1: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/tfk-string",
   "fn": "eom_map",
   "input": {
    "tfk": "x"
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/map/refuse/tfk-null",
   "fn": "eom_map",
   "input": {
    "tfk": null
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/map/refuse/tfk-list",
   "fn": "eom_map",
   "input": {
    "tfk": [
     1
    ]
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/map/refuse/tfk-integer",
   "fn": "eom_map",
   "input": {
    "tfk": 7
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/map/refuse/tpk-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
   "id": "eom/map/refuse/tpk-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": "x",
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
   "id": "eom/findings/refuse/tpk-string",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": "x",
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
   "id": "eom/map/refuse/dof-kind-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": "x",
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
   "id": "eom/map/refuse/dof-kind-null",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": null,
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
   "id": "eom/map/refuse/dof-entry-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       "t",
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF: entry is not an object]"
  },
  {
   "id": "eom/map/refuse/dof-name-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:?: missing field NAME]"
  },
  {
   "id": "eom/map/refuse/dof-name-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": 5,
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:?: field NAME has the wrong type]"
  },
  {
   "id": "eom/map/refuse/dof-name-space",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x y",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:x y: NAME x y is not an identifier]"
  },
  {
   "id": "eom/map/refuse/dof-name-bidi",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x\u202e",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:x<U+202E>: NAME x<U+202E> is not an identifier]"
  },
  {
   "id": "eom/map/refuse/dof-role-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1",
        "ROLE": 1
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:x: field ROLE has the wrong type]"
  },
  {
   "id": "eom/map/refuse/dof-role-lower",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1",
        "ROLE": "input"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:x: ROLE input is not INPUT]"
  },
  {
   "id": "eom/map/refuse/dof-role-output",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1",
        "ROLE": "OUTPUT"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:x: ROLE OUTPUT is not INPUT]"
  },
  {
   "id": "eom/map/refuse/const-kind-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": "m",
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind CONSTANT is not a list]"
  },
  {
   "id": "eom/map/refuse/const-entry-list",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       [
        "m"
       ],
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind CONSTANT: entry is not an object]"
  },
  {
   "id": "eom/map/refuse/const-name-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTANT:?: missing field NAME]"
  },
  {
   "id": "eom/map/refuse/const-value-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": 5,
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTANT:x_max: field VALUE has the wrong type]"
  },
  {
   "id": "eom/map/refuse/law-kind-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": "KIN",
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind LAW is not a list]"
  },
  {
   "id": "eom/map/refuse/law-entry-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       3,
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind LAW: entry is not an object]"
  },
  {
   "id": "eom/map/refuse/law-name-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:?: missing field NAME]"
  },
  {
   "id": "eom/map/refuse/law-name-digit",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "1KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:1KIN: NAME 1KIN is not an identifier]"
  },
  {
   "id": "eom/map/refuse/dupe-dof-law",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "x",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: duplicate name x]"
  },
  {
   "id": "eom/map/refuse/dupe-dof-const",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "v",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: duplicate name v]"
  },
  {
   "id": "eom/map/refuse/dupe-law-law",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: duplicate name KIN]"
  },
  {
   "id": "eom/map/refuse/cons-kind-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": "C",
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind CONSTRAINT is not a list]"
  },
  {
   "id": "eom/map/refuse/cons-entry-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       "C"
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind CONSTRAINT: entry is not an object]"
  },
  {
   "id": "eom/map/refuse/cons-target-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: missing field TARGET]"
  },
  {
   "id": "eom/map/refuse/cons-target-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": 5,
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: field TARGET has the wrong type]"
  },
  {
   "id": "eom/map/refuse/cons-action-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: missing field ACTION]"
  },
  {
   "id": "eom/map/refuse/cons-action-lower",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "fix",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: ACTION fix is not REMOVE or FIX]"
  },
  {
   "id": "eom/map/refuse/cons-target-constant",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "m",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: TARGET m is not a DOF]"
  },
  {
   "id": "eom/map/refuse/cons-target-unknown",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "q",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: TARGET q is not a DOF]"
  },
  {
   "id": "eom/map/refuse/cons-fix-no-value",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: FIX requires VALUE]"
  },
  {
   "id": "eom/map/refuse/cons-value-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": 0,
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: field VALUE has the wrong type]"
  },
  {
   "id": "eom/map/refuse/cons-value-word",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "zero",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: VALUE zero is not a decimal]"
  },
  {
   "id": "eom/map/refuse/law-role-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: missing field ROLE]"
  },
  {
   "id": "eom/map/refuse/law-role-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": 5
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: field ROLE has the wrong type]"
  },
  {
   "id": "eom/map/refuse/law-role-space",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM (x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM (x) is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-inner-space",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM( x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM( x) is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-lower",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "eom(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE eom(x) is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-empty-eom",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM()"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM() is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-trailing-lf",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "CONSTRAINT\n"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE CONSTRAINT\n is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-input",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "INPUT"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE INPUT is not a role]"
  },
  {
   "id": "eom/map/refuse/law-role-eom-constant",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(k_s)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM(k_s): k_s is not a DOF]"
  },
  {
   "id": "eom/map/refuse/law-role-eom-nothing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(q)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM(q): q is not a DOF]"
  },
  {
   "id": "eom/map/refuse/law-role-eom-law",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(EOM_X)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM(EOM_X): EOM_X is not a DOF]"
  },
  {
   "id": "eom/map/refuse/law-equation-integer",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": 5,
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: field EQUATION has the wrong type]"
  },
  {
   "id": "eom/map/refuse/law-equation-null",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": null,
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: field EQUATION has the wrong type]"
  },
  {
   "id": "eom/map/refuse/law-equation-no-eq",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) - v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION does not parse: the equation has no =]"
  },
  {
   "id": "eom/map/refuse/law-equation-bidi",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v\u202e",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION does not parse: unexpected character <U+202E> at 12]"
  },
  {
   "id": "eom/map/refuse/law-equation-undeclared",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v + g",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/law-equation-undeclared-variable",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, tau) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION names tau, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/law-equation-names-law",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v + EOM_Z",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION names EOM_Z, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/law-equation-long",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION does not parse: the form is longer than 4096 code points]"
  },
  {
   "id": "eom/findings/refuse/law-role-space",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM (x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM (x) is not a role]"
  },
  {
   "id": "eom/class/refuse/law-role-space",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM (x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: ROLE EOM (x) is not a role]"
  },
  {
   "id": "eom/map/refuse/prose-refs-missing",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:ACTION: missing field REFS]"
  },
  {
   "id": "eom/map/refuse/prose-refs-string",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": "v",
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:ACTION: field REFS has the wrong type]"
  },
  {
   "id": "eom/map/refuse/prose-refs-member",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "v",
         1
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    }
   },
   "expect": "[REFUSED,LAW:ACTION: field REFS has the wrong type]"
  },
  {
   "id": "eom/map/refuse/order-dof-before-constant",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": 5,
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": "m",
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,DOF:?: field NAME has the wrong type]"
  },
  {
   "id": "eom/map/refuse/order-constant-before-law",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1",
        "VALUE": 5
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": 5,
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTANT:m: field VALUE has the wrong type]"
  },
  {
   "id": "eom/map/refuse/order-duplicate-before-constraint",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "x",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": "C",
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: duplicate name x]"
  },
  {
   "id": "eom/map/refuse/order-constraint-before-role",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "fix",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,CONSTRAINT:C_NOZ: ACTION fix is not REMOVE or FIX]"
  },
  {
   "id": "eom/map/refuse/order-law-list-order",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = g",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "EOM"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/order-least-name",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v + h + g",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "EOM_Z",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,LAW:KIN: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/map/refuse/order-least-duplicate",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "t",
        "DIMENSION": "T1"
       },
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "z",
        "DIMENSION": "L1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "EOM_X",
        "STATEMENT": "m dv/dt = -k_s x",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "EQUATION": "m * D(v, t) = -k_s * x",
        "ROLE": "EOM(v)"
       },
       {
        "NAME": "x",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "v",
        "STATEMENT": "m d2z/dt2 = 0",
        "REFS": [
         "m",
         "z",
         "t"
        ],
        "EQUATION": "m * D(z, t, 2) = 0",
        "ROLE": "CONSTRAINT"
       }
      ],
      "ASSUMPTION": [
       {
        "NAME": "A_kpos",
        "PROPOSITION": "k_s is positive",
        "REFS": [
         "k_s"
        ]
       },
       {
        "NAME": "A_mpos",
        "PROPOSITION": "m is positive",
        "REFS": [
         "m"
        ]
       }
      ],
      "CONSTRAINT": [
       {
        "NAME": "C_NOZ",
        "TARGET": "z",
        "ACTION": "FIX",
        "VALUE": "0",
        "UNIT": "m",
        "STATEMENT": "only motion on the spring axis is described: z = 0"
       }
      ],
      "BOUNDARY": [
       {
        "NAME": "B_small",
        "PREDICATE": "|x| < x_max",
        "REFS": [
         "x",
         "x_max"
        ],
        "CONDITION": "abs(x) < x_max"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      },
      "CONSTANTS": [
       {
        "NAME": "w_a",
        "VALUE": "1"
       },
       {
        "NAME": "w_s",
        "VALUE": "0.5"
       }
      ],
      "YARDSTICKS": [
       {
        "NAME": "combined_distance",
        "KEY": [
         "SR1",
         "WSUM:w_a*A;w_s*S",
         "S"
        ],
        "LIMITING": []
       }
      ]
     },
     "TrM": {
      "HEADER": {
       "ENVIRONMENT_INVENTORY": [
        {
         "ENVIRONMENT_QUANTITY": "time",
         "DIMENSION": "T1"
        },
        {
         "ENVIRONMENT_QUANTITY": "position",
         "DIMENSION": "L1"
        },
        {
         "ENVIRONMENT_QUANTITY": "velocity",
         "DIMENSION": "L1 T-1"
        },
        {
         "ENVIRONMENT_QUANTITY": "transverse_position",
         "DIMENSION": "L1"
        }
       ],
       "SIGNATURE": [
        {
         "NAME": "time_derivative",
         "OVER": [
          "x",
          "v",
          "t"
         ],
         "IMAGE": "d/dt maps position to velocity",
         "FORM": "D(x, t) = v",
         "IMAGE_FORM": "D(position, time) = velocity"
        }
       ],
       "TRANSFORMATIONS": [
        {
         "NAME": "time_translation",
         "STATEMENT": "t -> t + t0"
        }
       ]
      },
      "ENTRIES": [
       {
        "NAME": "E_t",
        "DOF": "t",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "time",
        "IDENTIFICATION": "t is the reading of a laboratory clock from an arbitrary origin",
        "FALSIFIER": "a second clock whose readings differ from t by more than a constant offset beyond the stated uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [],
        "DIMENSION": "T1"
       },
       {
        "NAME": "E_x",
        "DOF": "x",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "position",
        "IDENTIFICATION": "x is the displacement of the mass along the spring axis from the point where the spring exerts no force",
        "FALSIFIER": "a measured spring force not proportional to x inside the domain",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_X",
         "KIN"
        ],
        "DIMENSION": "L1"
       },
       {
        "NAME": "E_v",
        "DOF": "v",
        "DOMAIN": "|x| < x_max",
        "ENVIRONMENT_QUANTITY": "velocity",
        "IDENTIFICATION": "v is the rate of change of x with t",
        "FALSIFIER": "a measured velocity that differs from the rate of change of the measured x beyond uncertainty",
        "FALSIFIER_CLASS": "F2",
        "BEARS": [
         "KIN"
        ],
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "E_z",
        "DOF": "z",
        "DOMAIN": "always",
        "ENVIRONMENT_QUANTITY": "transverse_position",
        "IDENTIFICATION": "z is the displacement of the mass perpendicular to the spring axis",
        "FALSIFIER": "a measured z different from 0 beyond its uncertainty",
        "FALSIFIER_CLASS": "F3",
        "BEARS": [
         "EOM_Z",
         "C_NOZ"
        ],
        "DIMENSION": "L1"
       }
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK: duplicate name v]"
  },
  {
   "id": "eom/register/refuse-records-string",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": "RR-1"
   },
   "expect": "[REFUSED,records is not a list]"
  },
  {
   "id": "eom/register/refuse-records-null",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": null
   },
   "expect": "[REFUSED,records is not a list]"
  },
  {
   "id": "eom/register/refuse-records-entry-string",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     "RR-1"
    ]
   },
   "expect": "[REFUSED,records: entry is not an object]"
  },
  {
   "id": "eom/register/refuse-id-missing",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:?: missing field ID]"
  },
  {
   "id": "eom/register/refuse-id-integer",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": 1,
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:?: field ID has the wrong type]"
  },
  {
   "id": "eom/register/refuse-id-no-number",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR: ID RR is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-zero",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-0",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-0: ID RR-0 is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-leading-zero",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-01",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-01: ID RR-01 is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-space",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "R R-1",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:R R-1: ID R R-1 is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-suffix",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1a",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1a: ID RR-1a is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-no-prefix",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "-1",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:-1: ID -1 is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-bib",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-BIB1",
      "STATUS": "PROVISIONAL"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-BIB1: ID RR-BIB1 is not a record identifier]"
  },
  {
   "id": "eom/register/refuse-id-duplicate",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL"
     },
     {
      "ID": "RR-1",
      "STATUS": "HELD"
     }
    ]
   },
   "expect": "[REFUSED,records: duplicate ID RR-1]"
  },
  {
   "id": "eom/register/refuse-status-missing",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: missing field STATUS]"
  },
  {
   "id": "eom/register/refuse-status-integer",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": 1
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: field STATUS has the wrong type]"
  },
  {
   "id": "eom/register/refuse-status-lower",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "held"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: STATUS held is not a status word]"
  },
  {
   "id": "eom/register/refuse-status-empty",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": ""
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: STATUS  is not a status word]"
  },
  {
   "id": "eom/register/refuse-status-not-graded",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "NOT GRADED"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: STATUS NOT GRADED is not a status word]"
  },
  {
   "id": "eom/register/refuse-status-unmarked",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "UNMARKED"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: STATUS UNMARKED is not a status word]"
  },
  {
   "id": "eom/register/refuse-status-struck",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "STRUCK"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: STATUS STRUCK is not a status word]"
  },
  {
   "id": "eom/register/refuse-role-integer",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": 5,
      "EQUATION": "D(x, t) = v"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: field ROLE has the wrong type]"
  },
  {
   "id": "eom/register/refuse-role-bad",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM v",
      "EQUATION": "D(x, t) = v"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM v is not a role]"
  },
  {
   "id": "eom/register/refuse-role-eom-constant",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(m)",
      "EQUATION": "D(x, t) = v"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: ROLE EOM(m): m is not a DOF]"
  },
  {
   "id": "eom/register/refuse-equation-integer",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": 5
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: field EQUATION has the wrong type]"
  },
  {
   "id": "eom/register/refuse-equation-parse",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) == 0"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: EQUATION does not parse: unexpected token = at 10]"
  },
  {
   "id": "eom/register/refuse-equation-undeclared",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "D(v, t) = g"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-1: EQUATION names g, which is not a DOF or CONSTANT]"
  },
  {
   "id": "eom/register/refuse-second-record",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM(x)"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": [
     {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL",
      "ROLE": "EOM(v)",
      "EQUATION": "m * D(v, t) = -k_s * x"
     },
     {
      "ID": "RR-2",
      "STATUS": "held"
     }
    ]
   },
   "expect": "[REFUSED,RECORD:RR-2: STATUS held is not a status word]"
  },
  {
   "id": "eom/register/refuse-tfk-first",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       },
       {
        "NAME": "v",
        "DIMENSION": "L1 T-1"
       },
       {
        "NAME": "t",
        "DIMENSION": "T1"
       }
      ],
      "CONSTANT": [
       {
        "NAME": "m",
        "DIMENSION": "M1"
       },
       {
        "NAME": "k_s",
        "DIMENSION": "M1 T-2"
       },
       {
        "NAME": "x_max",
        "DIMENSION": "L1",
        "VALUE": "0.05",
        "UNIT": "m",
        "UNCERTAINTY": "0.001"
       }
      ],
      "LAW": [
       {
        "NAME": "KIN",
        "STATEMENT": "dx/dt = v",
        "REFS": [
         "x",
         "v",
         "t"
        ],
        "EQUATION": "D(x, t) = v",
        "ROLE": "EOM"
       },
       {
        "NAME": "ACTION",
        "STATEMENT": "the action, the time integral of m v^2 / 2 - k_s x^2 / 2, is stationary under variations of x with fixed end points",
        "REFS": [
         "m",
         "v",
         "k_s",
         "x",
         "t"
        ],
        "ROLE": "EOM(v)"
       }
      ]
     },
     "TMS": {
      "PARAMETERS": {
       "STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
       "K": "2",
       "N_X": 2,
       "S_MAX": 10
      }
     }
    },
    "records": "RR-1"
   },
   "note": "the TFK is read before the records",
   "expect": "[REFUSED,LAW:KIN: ROLE EOM is not a role]"
  },
  {
   "id": "eom/decode/map-tpk-list",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": []
    }
   },
   "expect": "[REFUSED,TPK: zone is not an object]"
  },
  {
   "id": "eom/decode/map-kind-object",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": {}
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
   "id": "eom/decode/map-kind-zero-keyed",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": {
       "0": {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      }
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF is not a list]"
  },
  {
   "id": "eom/decode/map-entry-list",
   "fn": "eom_map",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       []
      ]
     }
    }
   },
   "expect": "[REFUSED,TPK kind DOF: entry is not an object]"
  },
  {
   "id": "eom/decode/findings-kind-object",
   "fn": "eom_findings",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ],
      "LAW": {}
     }
    }
   },
   "expect": "[REFUSED,TPK kind LAW is not a list]"
  },
  {
   "id": "eom/decode/map-tfk-list",
   "fn": "eom_map",
   "input": {
    "tfk": []
   },
   "expect": "[REFUSED,TFK is not an object]"
  },
  {
   "id": "eom/decode/class-tms-list",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {},
     "TMS": []
    }
   },
   "expect": "[REFUSED,TMS: zone is not an object]"
  },
  {
   "id": "eom/decode/class-parameters-list",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {},
     "TMS": {
      "PARAMETERS": []
     }
    }
   },
   "expect": "[REFUSED,TMS: part PARAMETERS is not an object]"
  },
  {
   "id": "eom/decode/class-parameters-empty-object",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {},
     "TMS": {
      "PARAMETERS": {}
     }
    }
   },
   "note": "an empty PARAMETERS object: STRUCTURE_CHECK absent, so ON; the empty kernel carries no form, so it is not structurally regular (S30: forms present)",
   "expect": "[STRUCTURE,Structure not Validated at Inception,[NO FORM]]"
  },
  {
   "id": "eom/decode/class-parameters-zero-keyed",
   "fn": "eom_class",
   "input": {
    "tfk": {
     "TPK": {},
     "TMS": {
      "PARAMETERS": {
       "0": "OFF"
      }
     }
    }
   },
   "note": "a key 0 is not STRUCTURE_CHECK, so ON (it read as a list and was refused)",
   "expect": "[STRUCTURE,Structure not Validated at Inception,[NO FORM]]"
  },
  {
   "id": "eom/decode/register-records-object",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ]
     }
    },
    "records": {}
   },
   "expect": "[REFUSED,records is not a list]"
  },
  {
   "id": "eom/decode/register-records-zero-keyed",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ]
     }
    },
    "records": {
     "0": {
      "ID": "RR-1",
      "STATUS": "PROVISIONAL"
     }
    }
   },
   "expect": "[REFUSED,records is not a list]"
  },
  {
   "id": "eom/decode/register-record-entry-list",
   "fn": "eom_register_test",
   "input": {
    "tfk": {
     "TPK": {
      "DOF": [
       {
        "NAME": "x",
        "DIMENSION": "L1"
       }
      ]
     }
    },
    "records": [
     []
    ]
   },
   "expect": "[REFUSED,records: entry is not an object]"
  }
 ]
}