The Principia Machina/TPC-PY/vectors/zone corpus.json: Difference between revisions
Appearance
TPC-PY source vectors/zone_corpus.json (0.5.2), SHA-256 80179329b18cfa80; conformed TPS 0.4.0; PROPOSED, not declared (TPC-PY 0.2.0) |
m 1 revision imported |
(No difference)
| |
Latest revision as of 02:11, 30 September 2026
{
"meta": {
"name": "tpc_zone_corpus",
"version": "0.5.2",
"status": "SELECTED D92.1, D98.1, D99.1, D100.1; units D103.1, D104.1, D105.1 (2026-09-22); the D108.1 declared form at Option 1 of every slot (2026-09-24, increment 8); D176.1 and D177.1 (2026-09-26, schema 0.5.0); values VERIFIED",
"conforms_tps": "0.1.0 revision 4 (zone schemas for TPS 2.2-2.4; per-zone digests TPS 2.5.9; successor classes TPS 2.1.5; T1 of guide 3.6); schema 0.5.0 per D176.1 and D177.1 as taken 2026-09-26 (TPS revision 6 text pending)",
"module": "tpc_zone 0.5.1 (proposed with TPC-PY 0.2.0), schema 0.5.0 (tpc_units 0.1.1, tpc_form 0.2.1, with D177.1)",
"note": "Validator, dimension and successor expectations are hand-derived. Digest cases carry their preimage; expect = SHA-256(preimage), auditable with an external sha256sum. preimage/tms-minimal-hand-built was written by hand and matched byte for byte. The toy TFK is a mass on a linear spring with motion confined to z = 0 (C_NOZ carries UNIT m from schema 0.3.0); under schema 0.4.0 every zone digest moved once more, by the version tag; the spring with its forms adds a DOF t, an entry E_t and the declared forms (increment 8). Both are test fixtures, not physics under research. Both residences MUST reproduce every expect. 0.4.1 (S15) adds, and changes no earlier case: a DIMENSION whose repeated bases sum past -9999..9999 is refused, its canonical form lying outside the grammar; the canonical token is bounded to four digits; no admitted zone's digest moves. 0.5.0 (schema 0.5.0; D176.1, D177.1): ROLE on every LAW (required) and ROLE INPUT on a DOF (optional); the TPK PARAMETERS part with D_VARIABLES ONE or SEVERAL, ONE when absent and serialized ONE; STRUCTURE_CHECK in the TMS PARAMETERS, ON when absent and serialized ON; T1's D-variable rules. Every zone digest moved once, by the version tag and the new fields; every fixture LAW carries a ROLE chosen by its physics. 0.5.1 (S33, 2026-09-26): a LAW restating the motion of a FIXed DOF (the toy's and the spring's FREE_Z, corner_fix_t's EOM_Z) carries ROLE CONSTRAINT, not EOM(z); the toy's and the spring's D(TPK) and D(TFK) move once more; successor/s050-law-role-changed now changes FREE_Z back to EOM(z). No other answer moves. 0.5.2 (C-MS-5, increment 11, 2026-09-28): 34 decode/ cases, each a JSON {} where a list is read, a JSON [] where an object is read, an object keyed 0 read as a list, or a valid empty object; TPC-PHP now reads the JSON as written (tpc_zone 0.5.1). No earlier answer moves."
},
"cases": [
{
"id": "dim/is_canonical/1",
"fn": "is_canonical_dimension",
"input": {
"s": "1"
},
"expect": "true"
},
{
"id": "dim/is_canonical/L1_M1_T-2",
"fn": "is_canonical_dimension",
"input": {
"s": "L1 M1 T-2"
},
"expect": "true"
},
{
"id": "dim/is_canonical/TH1",
"fn": "is_canonical_dimension",
"input": {
"s": "TH1"
},
"expect": "true"
},
{
"id": "dim/is_canonical/T1_TH1",
"fn": "is_canonical_dimension",
"input": {
"s": "T1 TH1"
},
"expect": "true"
},
{
"id": "dim/is_canonical/L-1_TH1",
"fn": "is_canonical_dimension",
"input": {
"s": "L-1 TH1"
},
"expect": "true"
},
{
"id": "dim/is_canonical/M1_L1",
"fn": "is_canonical_dimension",
"input": {
"s": "M1 L1"
},
"expect": "false"
},
{
"id": "dim/is_canonical/L0",
"fn": "is_canonical_dimension",
"input": {
"s": "L0"
},
"expect": "false"
},
{
"id": "dim/is_canonical/L1__T-1",
"fn": "is_canonical_dimension",
"input": {
"s": "L1 T-1"
},
"expect": "false"
},
{
"id": "dim/is_canonical/L+1",
"fn": "is_canonical_dimension",
"input": {
"s": "L+1"
},
"expect": "false"
},
{
"id": "dim/is_canonical/L1_L2",
"fn": "is_canonical_dimension",
"input": {
"s": "L1 L2"
},
"expect": "false"
},
{
"id": "dim/is_canonical/empty",
"fn": "is_canonical_dimension",
"input": {
"s": ""
},
"expect": "false"
},
{
"id": "dim/is_canonical/l1",
"fn": "is_canonical_dimension",
"input": {
"s": "l1"
},
"expect": "false"
},
{
"id": "dim/canon/L2,M1,T-2",
"fn": "canon_dimension",
"input": {
"exps": {
"M": 1,
"L": 2,
"T": -2
}
},
"expect": "L2 M1 T-2"
},
{
"id": "dim/canon/none",
"fn": "canon_dimension",
"input": {
"exps": {}
},
"expect": "1"
},
{
"id": "dim/canon/L0",
"fn": "canon_dimension",
"input": {
"exps": {
"L": 0
}
},
"expect": "1"
},
{
"id": "dim/canon/L-1,TH1",
"fn": "canon_dimension",
"input": {
"exps": {
"TH": 1,
"L": -1
}
},
"expect": "L-1 TH1"
},
{
"id": "dim/canon/I2,J1,N-1",
"fn": "canon_dimension",
"input": {
"exps": {
"J": 1,
"N": -1,
"I": 2
}
},
"expect": "I2 N-1 J1"
},
{
"id": "t1/toy-passes",
"fn": "t1_well_formed",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "trm/toy-passes",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/toy-passes",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/bad-structure",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "x",
"DIMENSION": "M1 Q1"
}
],
"LAW": [
{
"NAME": "N",
"STATEMENT": "N relates x and q",
"REFS": [
"x",
"q",
"N"
],
"ROLE": "CONSTITUTIVE"
}
],
"CONSTRAINT": [
{
"NAME": "C",
"TARGET": "N",
"ACTION": "FIX",
"STATEMENT": "fix N"
}
],
"CONSTANT": [
{
"NAME": "m",
"DIMENSION": "M1",
"VALUE": "1.5"
}
],
"BOGUS": []
}
},
"expect": "[false,[CONSTANT:m: VALUE requires UNIT,CONSTRAINT:C: FIX requires UNIT,CONSTRAINT:C: FIX requires VALUE,CONSTRAINT:C: TARGET N is not a DOF,DOF:x: DIMENSION M1 Q1 is not a dimension,LAW:N: REFS q does not resolve,LAW:N: cites itself,TPK: duplicate name x,TPK: unknown kind BOGUS]]"
},
{
"id": "t1/bad-fields",
"fn": "t1_well_formed",
"input": {
"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.1"
}
],
"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)",
"STATE": "OPEN",
"COMMENT": "x"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": "z",
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"N2"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "REMOVE",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ASSUMPTION:A_lin: REFS N2 is a LAW, not a DOF or CONSTANT,BOUNDARY:B_small: field REFS has duplicate entries,CONSTANT:x_max: UNCERTAINTY -0.1 is negative,CONSTRAINT:C_NOZ: REMOVE forbids UNIT,CONSTRAINT:C_NOZ: REMOVE forbids VALUE,LAW:FREE_Z: field REFS has the wrong type,LAW:KIN: mutable field STATE is not permitted in the TFK,LAW:KIN: unknown field COMMENT]]"
},
{
"id": "trm/bad-entry",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E1",
"DOF": "w",
"DOMAIN": " ",
"ENVIRONMENT_QUANTITY": "speed",
"IDENTIFICATION": "w is a speed",
"FALSIFIER": "none offered",
"FALSIFIER_CLASS": "F0",
"BEARS": [
"N2",
"x"
],
"DIMENSION": "L1 T-1",
"STATE": "PROPOSED"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENTRY:E1: BEARS x is not a TPK LAW or CONSTRAINT,ENTRY:E1: DOF w is not a TPK DOF,ENTRY:E1: DOMAIN is empty,ENTRY:E1: ENVIRONMENT_QUANTITY speed is not in the ENVIRONMENT INVENTORY,ENTRY:E1: FALSIFIER_CLASS F0 is inadmissible,ENTRY:E1: mutable field STATE is not permitted in the TFK]]"
},
{
"id": "trm/bad-header",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "T-1 L"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"m"
],
"IMAGE": "d/dt"
}
]
},
"ENTRIES": []
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENV:position: DIMENSION T-1 L is not a dimension,SIGNATURE:time_derivative: OVER m is not a TPK DOF,TrM HEADER: missing part TRANSFORMATIONS,TrM: duplicate environment quantity position]]"
},
{
"id": "tms/bad-params-and-key",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "0",
"N_X": 1,
"IC2_POLICY": "MAYBE"
},
"CONSTANTS": [
{
"NAME": "w",
"VALUE": "abc"
}
],
"YARDSTICKS": [
{
"NAME": "Y",
"KEY": [
"A",
"SR1",
"WSUM:q*A",
"BAD"
],
"LIMITING": []
}
]
}
},
"expect": "[false,[CONSTANT:w: VALUE abc is not a decimal,PARAMETERS: IC2_POLICY MAYBE is not GAP or REJECT,PARAMETERS: K 0 is not a positive decimal in double range,PARAMETERS: N_X must be at least 2,PARAMETERS: missing field S_MAX,YARDSTICK:Y: KEY must begin with SR1,YARDSTICK:Y: SR1 may appear only as the first term,YARDSTICK:Y: constant q is not a TMS constant,YARDSTICK:Y: term BAD is not well-formed]]"
},
{
"id": "tms/bad-limiting",
"fn": "tms_well_formed",
"input": {
"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": []
},
{
"NAME": "Z",
"KEY": [
"SR1",
"A"
],
"LIMITING": [
{
"DOMAIN": "d1",
"KEY": [
"SR1",
"NEG:A"
]
},
{
"DOMAIN": "d1",
"KEY": [
"A"
]
}
]
}
]
}
},
"expect": "[false,[YARDSTICK:Z LIMITING d1: KEY must begin with SR1,YARDSTICK:Z: duplicate limiting DOMAIN d1]]"
},
{
"id": "t1/bad-names-and-shapes",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x y",
"DIMENSION": "L1"
}
],
"LAW": [
{
"NAME": "?",
"STATEMENT": "s",
"REFS": [
"x y"
],
"ROLE": "CONSTITUTIVE"
}
],
"ASSUMPTION": "not a list",
"BOUNDARY": [
42
]
}
},
"expect": "[false,[DOF:x y: NAME x y is not an identifier,LAW:?: NAME ? is not an identifier,TPK kind ASSUMPTION is not a list,TPK kind BOUNDARY: entry is not an object]]"
},
{
"id": "t1/zone-not-object",
"fn": "t1_well_formed",
"input": {
"tpk": "x"
},
"expect": "[false,[TPK: zone is not an object]]"
},
{
"id": "trm/bad-shapes",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": "x",
"ENTRIES": "y",
"EXTRA": 1
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[TrM ENTRIES is not a list,TrM: HEADER is not an object,TrM: unknown part EXTRA]]"
},
{
"id": "dim/is_canonical/trailing-newline",
"fn": "is_canonical_dimension",
"input": {
"s": "L1\n"
},
"expect": "false"
},
{
"id": "tms/k-1e-400",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "1e-400",
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: K 1e-400 is not a positive decimal in double range]]"
},
{
"id": "tms/k-1e400",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "1e400",
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: K 1e400 is not a positive decimal in double range]]"
},
{
"id": "tms/k-2NL",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2\n",
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: K 2\n is not a decimal]]"
},
{
"id": "tms/k-1e-300",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "1e-300",
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/limiting-nfc-duplicate-and-empty",
"fn": "tms_well_formed",
"input": {
"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": []
},
{
"NAME": "Z",
"KEY": [
"SR1"
],
"LIMITING": [
{
"DOMAIN": "r\u00e9gime",
"KEY": [
"SR1"
]
},
{
"DOMAIN": "re\u0301gime",
"KEY": [
"SR1",
"A"
]
},
{
"DOMAIN": " ",
"KEY": [
"SR1"
]
}
]
}
]
}
},
"expect": "[false,[YARDSTICK:Z LIMITING : DOMAIN is empty,YARDSTICK:Z: duplicate limiting DOMAIN r\u00e9gime]]"
},
{
"id": "trm/nbsp-domain-is-blank",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "\u00a0\t",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENTRY:E_x: DOMAIN is empty]]"
},
{
"id": "tms/ideographic-space-step-convention-is-blank",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "\u3000",
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: STEP_CONVENTION is empty]]"
},
{
"id": "tms/zero-width-space-is-refused",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "\u200b",
"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": []
}
]
}
},
"note": "U+200B is general category Cf: refused as invisible text (tpm_zone_schemas 0.2.0 section 6)",
"expect": "[false,[PARAMETERS: field STEP_CONVENTION contains disallowed character U+200B]]"
},
{
"id": "dim/normalize/1",
"fn": "normalize_dimension",
"input": {
"s": "1"
},
"expect": "1"
},
{
"id": "dim/normalize/L1_T-1",
"fn": "normalize_dimension",
"input": {
"s": "L1 T-1"
},
"expect": "L1 T-1"
},
{
"id": "dim/normalize/T-1_L1",
"fn": "normalize_dimension",
"input": {
"s": "T-1 L1"
},
"expect": "L1 T-1"
},
{
"id": "dim/normalize/L1_L-1",
"fn": "normalize_dimension",
"input": {
"s": "L1 L-1"
},
"expect": "1"
},
{
"id": "dim/normalize/L0",
"fn": "normalize_dimension",
"input": {
"s": "L0"
},
"expect": "1"
},
{
"id": "dim/normalize/M1_L1_M1",
"fn": "normalize_dimension",
"input": {
"s": "M1 L1 M1"
},
"expect": "L1 M2"
},
{
"id": "dim/normalize/L01",
"fn": "normalize_dimension",
"input": {
"s": "L01"
},
"expect": "L1"
},
{
"id": "dim/normalize/TH-2_J1_T3",
"fn": "normalize_dimension",
"input": {
"s": "TH-2 J1 T3"
},
"expect": "T3 TH-2 J1"
},
{
"id": "dim/normalize/L",
"fn": "normalize_dimension",
"input": {
"s": "L"
},
"expect": "null"
},
{
"id": "dim/normalize/L1__T-1",
"fn": "normalize_dimension",
"input": {
"s": "L1 T-1"
},
"expect": "null"
},
{
"id": "dim/normalize/L12345",
"fn": "normalize_dimension",
"input": {
"s": "L12345"
},
"expect": "null"
},
{
"id": "dim/normalize/empty",
"fn": "normalize_dimension",
"input": {
"s": ""
},
"expect": "null"
},
{
"id": "dim/normalize/1_L1",
"fn": "normalize_dimension",
"input": {
"s": "1 L1"
},
"expect": "null"
},
{
"id": "dim/normalize/L1NL",
"fn": "normalize_dimension",
"input": {
"s": "L1\n"
},
"expect": "null"
},
{
"id": "dim/normalize/Q1",
"fn": "normalize_dimension",
"input": {
"s": "Q1"
},
"expect": "null"
},
{
"id": "dec/canon/0.05",
"fn": "canon_decimal",
"input": {
"s": "0.05"
},
"expect": "5e-2"
},
{
"id": "dec/canon/0.050",
"fn": "canon_decimal",
"input": {
"s": "0.050"
},
"expect": "5e-2"
},
{
"id": "dec/canon/5e-2",
"fn": "canon_decimal",
"input": {
"s": "5e-2"
},
"expect": "5e-2"
},
{
"id": "dec/canon/1500",
"fn": "canon_decimal",
"input": {
"s": "1500"
},
"expect": "15e2"
},
{
"id": "dec/canon/-0",
"fn": "canon_decimal",
"input": {
"s": "-0"
},
"expect": "0"
},
{
"id": "dec/canon/0.0",
"fn": "canon_decimal",
"input": {
"s": "0.0"
},
"expect": "0"
},
{
"id": "dec/canon/2",
"fn": "canon_decimal",
"input": {
"s": "2"
},
"expect": "2"
},
{
"id": "dec/canon/2.0",
"fn": "canon_decimal",
"input": {
"s": "2.0"
},
"expect": "2"
},
{
"id": "dec/canon/6.02214076e23",
"fn": "canon_decimal",
"input": {
"s": "6.02214076e23"
},
"expect": "602214076e15"
},
{
"id": "dec/canon/007.10",
"fn": "canon_decimal",
"input": {
"s": "007.10"
},
"expect": "71e-1"
},
{
"id": "dec/canon/-1.5E+3",
"fn": "canon_decimal",
"input": {
"s": "-1.5E+3"
},
"expect": "-15e2"
},
{
"id": "dec/canon/1e-400",
"fn": "canon_decimal",
"input": {
"s": "1e-400"
},
"expect": "1e-400"
},
{
"id": "dec/canon/10",
"fn": "canon_decimal",
"input": {
"s": "10"
},
"expect": "1e1"
},
{
"id": "dec/canon/.5",
"fn": "canon_decimal",
"input": {
"s": ".5"
},
"expect": "null"
},
{
"id": "dec/canon/5.",
"fn": "canon_decimal",
"input": {
"s": "5."
},
"expect": "null"
},
{
"id": "dec/canon/1e12345",
"fn": "canon_decimal",
"input": {
"s": "1e12345"
},
"expect": "null"
},
{
"id": "dec/canon/0.5NL",
"fn": "canon_decimal",
"input": {
"s": "0.5\n"
},
"expect": "null"
},
{
"id": "dec/canon/+1",
"fn": "canon_decimal",
"input": {
"s": "+1"
},
"expect": "null"
},
{
"id": "dec/canon/1,5",
"fn": "canon_decimal",
"input": {
"s": "1,5"
},
"expect": "null"
},
{
"id": "dec/canon/empty",
"fn": "canon_decimal",
"input": {
"s": ""
},
"expect": "null"
},
{
"id": "term/canon/SR1",
"fn": "canonical_term",
"input": {
"t": "SR1"
},
"expect": "SR1"
},
{
"id": "term/canon/WSUM:w_s*S;w_a*A",
"fn": "canonical_term",
"input": {
"t": "WSUM:w_s*S;w_a*A"
},
"expect": "WSUM:w_a*A;w_s*S"
},
{
"id": "term/canon/NEG:NEG:A",
"fn": "canonical_term",
"input": {
"t": "NEG:NEG:A"
},
"expect": "A"
},
{
"id": "term/canon/NEG:NEG:NEG:S",
"fn": "canonical_term",
"input": {
"t": "NEG:NEG:NEG:S"
},
"expect": "NEG:S"
},
{
"id": "term/canon/NEG:WSUM:b*S;a*A",
"fn": "canonical_term",
"input": {
"t": "NEG:WSUM:b*S;a*A"
},
"expect": "NEG:WSUM:a*A;b*S"
},
{
"id": "term/canon/WSUM:a*FIELD:z;b*A",
"fn": "canonical_term",
"input": {
"t": "WSUM:a*FIELD:z;b*A"
},
"expect": "WSUM:b*A;a*FIELD:z"
},
{
"id": "term/canon/WSUM:a*A;b*A",
"fn": "canonical_term",
"input": {
"t": "WSUM:a*A;b*A"
},
"expect": "WSUM:a*A;b*A"
},
{
"id": "term/canon/FIELD:dof_count",
"fn": "canonical_term",
"input": {
"t": "FIELD:dof_count"
},
"expect": "FIELD:dof_count"
},
{
"id": "tms/yardstick-grammar-and-static-c2",
"fn": "tms_well_formed",
"input": {
"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"
},
{
"NAME": "w_neg",
"VALUE": "-1"
},
{
"NAME": "w_zero",
"VALUE": "0.0"
}
],
"YARDSTICKS": [
{
"NAME": "Y1",
"KEY": [
"SR1",
"NEG:A",
"S"
],
"LIMITING": []
},
{
"NAME": "Y2",
"KEY": [
"SR1",
"WSUM:w_neg*A;w_s*S"
],
"LIMITING": []
},
{
"NAME": "Y3",
"KEY": [
"SR1",
"WSUM:w_zero*A",
"A"
],
"LIMITING": [
{
"DOMAIN": "|x| << x_max",
"KEY": [
"SR1",
"NEG:A"
]
}
]
},
{
"NAME": "Y4",
"KEY": [
"SR1",
"WSUM:w_s*A;w_s*A"
],
"LIMITING": []
},
{
"NAME": "Y5",
"KEY": [
"SR1",
"NEG:SR1"
],
"LIMITING": []
},
{
"NAME": "Y6",
"KEY": [
"SR1",
"FIELD:1bad"
],
"LIMITING": []
},
{
"NAME": "Y7",
"KEY": [
"SR1",
"S",
"NEG:NEG:A"
],
"LIMITING": []
},
{
"NAME": "Y8",
"KEY": [
"SR1",
"S",
"NEG:NEG:NEG:A"
],
"LIMITING": []
}
]
}
},
"note": "Y3: the first A-moving term is the plain A, since w_zero is 0; its limiting KEY inverts A inside its declared DOMAIN and is exempt from C2 there. Y7: NEG:NEG:A is A.",
"expect": "[false,[YARDSTICK:Y1: KEY ranks a record higher when an assumption is added (SR9 C2),YARDSTICK:Y2: KEY ranks a record higher when an assumption is added (SR9 C2),YARDSTICK:Y4: term WSUM:w_s*A;w_s*A is not well-formed,YARDSTICK:Y5: SR1 may appear only as the first term,YARDSTICK:Y6: term FIELD:1bad is not well-formed,YARDSTICK:Y8: KEY ranks a record higher when an assumption is added (SR9 C2)]]"
},
{
"id": "text/bidi-override-in-statement",
"fn": "t1_well_formed",
"input": {
"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 \u202e",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[LAW:N2: field STATEMENT contains disallowed character U+202E]]"
},
{
"id": "text/tag-character-in-proposition",
"fn": "t1_well_formed",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "linear\udb40\udc41\udb40\udc42 force",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ASSUMPTION:A_lin: field PROPOSITION contains disallowed character U+E0041]]"
},
{
"id": "text/nul-in-falsifier",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a\u0000b",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENTRY:E_x: field FALSIFIER contains disallowed character U+0000]]"
},
{
"id": "text/private-use-in-image",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt \ue000"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: field IMAGE contains disallowed character U+E000]]"
},
{
"id": "text/line-separator-in-step-convention",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one rule\u2028one 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": []
}
]
}
},
"expect": "[false,[PARAMETERS: field STEP_CONVENTION contains disallowed character U+2028]]"
},
{
"id": "text/noncharacter-escaped-in-message",
"fn": "tms_well_formed",
"input": {
"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": []
},
{
"NAME": "Z",
"KEY": [
"SR1"
],
"LIMITING": [
{
"DOMAIN": "\ufffe",
"KEY": [
"SR1"
]
}
]
}
]
}
},
"note": "the tag echoes the DOMAIN; the message shows the code point, never the character",
"expect": "[false,[YARDSTICK:Z LIMITING <U+FFFE>: field DOMAIN contains disallowed character U+FFFE]]"
},
{
"id": "text/unknown-field-name-escaped",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1",
"NOTE\u202e": "x"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENTRY:E_v: unknown field NOTE<U+202E>]]"
},
{
"id": "term/canon/deep-neg-5000",
"fn": "canonical_term",
"input": {
"t": "NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:A"
},
"note": "counted, not recursed: no input depth exhausts the stack",
"expect": "A"
},
{
"id": "term/canon/deep-neg-5001",
"fn": "canonical_term",
"input": {
"t": "NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:A"
},
"expect": "NEG:A"
},
{
"id": "tms/deep-neg-key-static-c2",
"fn": "tms_well_formed",
"input": {
"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",
"NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:NEG:A"
],
"LIMITING": []
}
]
}
},
"expect": "[false,[YARDSTICK:combined_distance: KEY ranks a record higher when an assumption is added (SR9 C2)]]"
},
{
"id": "tms/int-cap",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 1000001,
"S_MAX": 1000001
},
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: N_X must be at most 1000000,PARAMETERS: S_MAX must be at most 1000000]]"
},
{
"id": "tms/int-cap-edge-accepted",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 1000000,
"S_MAX": 1000000
},
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/promotion-floor-F0",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "F0"
},
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: PROMOTION_FLOOR F0 is not F1, F2 or F3]]"
},
{
"id": "tms/promotion-floor-F1",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "F1"
},
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/promotion-floor-F3",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "F3"
},
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/promotion-floor-f2",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "f2"
},
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: PROMOTION_FLOOR f2 is not F1, F2 or F3]]"
},
{
"id": "t1/unit-not-a-unit",
"fn": "t1_well_formed",
"input": {
"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": "furlong",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTANT:x_max: UNIT furlong: furlong is not a unit symbol]]"
},
{
"id": "t1/unit-wrong-dimension",
"fn": "t1_well_formed",
"input": {
"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": "cm2",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTANT:x_max: UNIT cm2 has dimension L2, not L1]]"
},
{
"id": "t1/unit-refused-celsius",
"fn": "t1_well_formed",
"input": {
"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": "degC",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTANT:x_max: UNIT degC: degC is refused, an offset scale, not a ratio]]"
},
{
"id": "t1/unit-prefixed-accepted",
"fn": "t1_well_formed",
"input": {
"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": "cm",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/unit-bidi-control",
"fn": "t1_well_formed",
"input": {
"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\u202e",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTANT:x_max: UNIT m<U+202E> is not a unit,CONSTANT:x_max: field UNIT contains disallowed character U+202E]]"
},
{
"id": "t1/fix-requires-unit",
"fn": "t1_well_formed",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTRAINT:C_NOZ: FIX requires UNIT]]"
},
{
"id": "t1/fix-unit-wrong-dimension",
"fn": "t1_well_formed",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "s",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[CONSTRAINT:C_NOZ: UNIT s has dimension T1, not L1 of TARGET z]]"
},
{
"id": "t1/angle-is-dimensionless",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "theta",
"DIMENSION": "1"
}
],
"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": "theta_0",
"DIMENSION": "1",
"VALUE": "0.1",
"UNIT": "rad"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
},
{
"NAME": "C_TH",
"TARGET": "theta",
"ACTION": "FIX",
"VALUE": "5",
"UNIT": "deg",
"STATEMENT": "theta held at 5 degrees"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "rad and deg are commensurable with DIMENSION 1 (the SI treats angle as one)",
"expect": "[true,[]]"
},
{
"id": "t1/forms-pass",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "the spring with its forms: EQUATION on every LAW, CONDITION on the BOUNDARY, a DOF t of T1 (S3)",
"expect": "[true,[]]"
},
{
"id": "trm/forms-pass",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/equation-does-not-parse",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) ="
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:N2: EQUATION does not parse: unexpected end]]"
},
{
"id": "t1/equation-names-nonmember",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:KIN: EQUATION names t, which is not in REFS]]"
},
{
"id": "t1/refs-member-unnamed",
"fn": "t1_well_formed",
"input": {
"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",
"z"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:N2: REFS z is not named in EQUATION]]"
},
{
"id": "t1/condition-names-nonmember",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[BOUNDARY:B_small: CONDITION names x_max, which is not in REFS]]"
},
{
"id": "t1/condition-does-not-parse",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "|x| < x_max"
}
]
}
},
"expect": "[false,[BOUNDARY:B_small: CONDITION does not parse: unexpected character | at 1]]"
},
{
"id": "t1/equation-hidden-character",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x\u202e"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:N2: EQUATION does not parse: unexpected character <U+202E> at 23,LAW:N2: field EQUATION contains disallowed character U+202E]]"
},
{
"id": "t1/equation-wrong-type",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": 7
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:N2: field EQUATION has the wrong type]]"
},
{
"id": "t1/equation-on-boundary-unknown",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max",
"EQUATION": "x = 0"
}
]
}
},
"expect": "[false,[BOUNDARY:B_small: unknown field EQUATION]]"
},
{
"id": "t1/condition-on-law-unknown",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x",
"CONDITION": "x < 0"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:N2: unknown field CONDITION]]"
},
{
"id": "trm/form-requires-image-form",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v",
"t"
],
"IMAGE": "d/dt maps position to velocity",
"FORM": "D(x, t) = v"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: FORM requires IMAGE_FORM]]"
},
{
"id": "trm/image-form-requires-form",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v",
"t"
],
"IMAGE": "d/dt maps position to velocity",
"IMAGE_FORM": "D(position, time) = velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: IMAGE_FORM requires FORM]]"
},
{
"id": "trm/form-names-nonmember",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: FORM names t, which is not in OVER]]"
},
{
"id": "trm/over-member-unnamed",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v",
"t",
"z"
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: OVER z is not named in FORM]]"
},
{
"id": "trm/image-form-names-non-quantity",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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) = speed"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: IMAGE_FORM names speed, which is not in the ENVIRONMENT INVENTORY]]"
},
{
"id": "trm/form-does-not-parse",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[SIGNATURE:time_derivative: FORM does not parse: unexpected token = at 13]]"
},
{
"id": "preimage/tms-minimal-hand-built",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"note": "schema 0.5.0: STRUCTURE_CHECK enters after PROMOTION_FLOOR; absent, it serializes as ON",
"expect": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "digest/tms-minimal",
"fn": "d_tms",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"preimage": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l",
"expect": "c64664bc8563144132dfec1a9df79bb4f58a136990a1cb09d4567d254bb52c72"
},
{
"id": "preimage/tms-minimal-K-respelled",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "20e-1",
"N_X": 2,
"S_MAX": 1
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"note": "K 20e-1 normalizes to 2: the same hand-built preimage",
"expect": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "preimage/tms-minimal-IC2-explicit-GAP",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"IC2_POLICY": "GAP"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"note": "an absent IC2_POLICY serializes as GAP (TPS 2.3.7): the same hand-built preimage",
"expect": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "preimage/tms-minimal-PROMOTION-FLOOR-explicit-F2",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"PROMOTION_FLOOR": "F2"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"note": "an absent PROMOTION_FLOOR serializes as F2 (D92.1): the same hand-built preimage",
"expect": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "preimage/tms-minimal-STRUCTURE-CHECK-explicit-ON",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"STRUCTURE_CHECK": "ON"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"note": "an absent STRUCTURE_CHECK serializes as ON (D176.1): the same hand-built preimage",
"expect": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "digest/tms-minimal-STRUCTURE-CHECK-explicit-ON",
"fn": "d_tms",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"STRUCTURE_CHECK": "ON"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"preimage": "l4:sTMS6:s0.5.0141:l11:sPARAMETERS122:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l",
"note": "declaring the default and saying nothing give one digest",
"expect": "c64664bc8563144132dfec1a9df79bb4f58a136990a1cb09d4567d254bb52c72"
},
{
"id": "preimage/tms-minimal-STRUCTURE-CHECK-OFF-hand-built",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"STRUCTURE_CHECK": "OFF"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"expect": "l4:sTMS6:s0.5.0142:l11:sPARAMETERS123:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK4:sOFF17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l"
},
{
"id": "digest/tms-minimal-STRUCTURE-CHECK-OFF",
"fn": "d_tms",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1,
"STRUCTURE_CHECK": "OFF"
},
"CONSTANTS": [],
"YARDSTICKS": []
}
},
"preimage": "l4:sTMS6:s0.5.0142:l11:sPARAMETERS123:l16:sSTEP_CONVENTION2:sx2:sK2:s24:sN_X2:i26:sS_MAX2:i111:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK4:sOFF17:l10:sCONSTANTS1:l18:l11:sYARDSTICKS1:l",
"expect": "e1c8572d727b8ba027488d11868e13f6615603e31916b741816b3d33845a4c7c"
},
{
"id": "t1/tpk-minimal-passes",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "the hand-built TPK below passes T1, so its digest is defined",
"expect": "[true,[]]"
},
{
"id": "preimage/tpk-minimal-hand-built",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "schema 0.5.0: the PARAMETERS part enters ahead of the six kinds; absent, it serializes as D_VARIABLES ONE",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l"
},
{
"id": "digest/tpk-minimal",
"fn": "d_tpk",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l",
"expect": "6851d16e1532b08843089d65cc7b20376756839c3d5f309351c52e8a585079ca"
},
{
"id": "preimage/tpk-minimal-PARAMETERS-empty",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"PARAMETERS": {},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "an absent PARAMETERS or an absent D_VARIABLES serializes as ONE (D177.1): the same hand-built preimage",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l"
},
{
"id": "digest/tpk-minimal-PARAMETERS-empty",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l",
"expect": "6851d16e1532b08843089d65cc7b20376756839c3d5f309351c52e8a585079ca"
},
{
"id": "preimage/tpk-minimal-PARAMETERS-explicit-ONE",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "an absent PARAMETERS or an absent D_VARIABLES serializes as ONE (D177.1): the same hand-built preimage",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l"
},
{
"id": "digest/tpk-minimal-PARAMETERS-explicit-ONE",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l",
"expect": "6851d16e1532b08843089d65cc7b20376756839c3d5f309351c52e8a585079ca"
},
{
"id": "preimage/tpk-minimal-SEVERAL-hand-built",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "l4:sTPK6:s0.5.044:l11:sPARAMETERS26:l12:sD_VARIABLES8:sSEVERAL44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l"
},
{
"id": "digest/tpk-minimal-SEVERAL",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.044:l11:sPARAMETERS26:l12:sD_VARIABLES8:sSEVERAL44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l",
"expect": "50605f6f7479663436f8fdd50198835d75629e6db33dfbc0e877ae3d0d9b5fad"
},
{
"id": "preimage/toy-TPK",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE115:l4:sDOF104:l34:l5:sNAME2:sv10:sDIMENSION7:sL1 T-130:l5:sNAME2:sx10:sDIMENSION3:sL130:l5:sNAME2:sz10:sDIMENSION3:sL1174:l9:sCONSTANT158:l36:l5:sNAME4:sk_s10:sDIMENSION7:sM1 T-230:l5:sNAME2:sm10:sDIMENSION3:sM182:l5:sNAME6:sx_max10:sDIMENSION3:sL16:sVALUE5:s5e-25:sUNIT2:sm12:sUNCERTAINTY5:s1e-3266:l4:sLAW255:l80:l5:sNAME7:sFREE_Z10:sSTATEMENT12:sd2z/dt2 = 05:sREFS5:l2:sz5:sROLE11:sCONSTRAINT74:l5:sNAME4:sKIN10:sSTATEMENT10:sdx/dt = v5:sREFS9:l2:sv2:sx5:sROLE7:sEOM(x)91:l5:sNAME3:sN210:sSTATEMENT17:sm dv/dt = -k_s x5:sREFS19:l4:sk_s2:sm2:sv2:sx5:sROLE7:sEOM(v)122:l11:sASSUMPTION103:l99:l5:sNAME6:sA_lin12:sPROPOSITION51:sthe restoring force is linear in x (Hooke r\u00e9gime)5:sREFS5:l2:sx132:l11:sCONSTRAINT113:l108:l5:sNAME6:sC_NOZ7:sTARGET2:sz7:sACTION4:sFIX10:sSTATEMENT25:smotion confined to z = 06:sVALUE2:s05:sUNIT2:sm88:l9:sBOUNDARY73:l69:l5:sNAME8:sB_small10:sPREDICATE12:s|x| < x_max5:sREFS13:l2:sx6:sx_max"
},
{
"id": "digest/toy-TPK",
"fn": "d_tpk",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE115:l4:sDOF104:l34:l5:sNAME2:sv10:sDIMENSION7:sL1 T-130:l5:sNAME2:sx10:sDIMENSION3:sL130:l5:sNAME2:sz10:sDIMENSION3:sL1174:l9:sCONSTANT158:l36:l5:sNAME4:sk_s10:sDIMENSION7:sM1 T-230:l5:sNAME2:sm10:sDIMENSION3:sM182:l5:sNAME6:sx_max10:sDIMENSION3:sL16:sVALUE5:s5e-25:sUNIT2:sm12:sUNCERTAINTY5:s1e-3266:l4:sLAW255:l80:l5:sNAME7:sFREE_Z10:sSTATEMENT12:sd2z/dt2 = 05:sREFS5:l2:sz5:sROLE11:sCONSTRAINT74:l5:sNAME4:sKIN10:sSTATEMENT10:sdx/dt = v5:sREFS9:l2:sv2:sx5:sROLE7:sEOM(x)91:l5:sNAME3:sN210:sSTATEMENT17:sm dv/dt = -k_s x5:sREFS19:l4:sk_s2:sm2:sv2:sx5:sROLE7:sEOM(v)122:l11:sASSUMPTION103:l99:l5:sNAME6:sA_lin12:sPROPOSITION51:sthe restoring force is linear in x (Hooke r\u00e9gime)5:sREFS5:l2:sx132:l11:sCONSTRAINT113:l108:l5:sNAME6:sC_NOZ7:sTARGET2:sz7:sACTION4:sFIX10:sSTATEMENT25:smotion confined to z = 06:sVALUE2:s05:sUNIT2:sm88:l9:sBOUNDARY73:l69:l5:sNAME8:sB_small10:sPREDICATE12:s|x| < x_max5:sREFS13:l2:sx6:sx_max",
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "preimage/toy-TrM",
"fn": "zone_preimage",
"input": {
"zone": "TrM",
"value": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
}
},
"expect": "l4:sTrM6:s0.5.0416:l7:sHEADER204:l22:sENVIRONMENT_INVENTORY174:l52:l21:sENVIRONMENT_QUANTITY7:sheight10:sDIMENSION3:sL154:l21:sENVIRONMENT_QUANTITY9:sposition10:sDIMENSION3:sL158:l21:sENVIRONMENT_QUANTITY9:svelocity10:sDIMENSION7:sL1 T-1108:l10:sSIGNATURE91:l87:l5:sNAME16:stime_derivative5:sOVER9:l2:sv2:sx6:sIMAGE31:sd/dt maps position to velocity83:l16:sTRANSFORMATIONS60:l56:l5:sNAME17:stime_translation10:sSTATEMENT12:st -> t + t0861:l8:sENTRIES846:l273:l5:sNAME4:sE_v4:sDOF2:sv7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:svelocity15:sIDENTIFICATION30:sv is the time derivative of x10:sFALSIFIER60:sa measured velocity differing from dx/dt beyond uncertainty16:sFALSIFIER_CLASS3:sF26:sBEARS7:l4:sKIN10:sDIMENSION7:sL1 T-1313:l5:sNAME4:sE_x4:sDOF2:sx7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:sposition15:sIDENTIFICATION61:sx is the displacement from equilibrium along the spring axis10:sFALSIFIER67:sa measured restoring force not proportional to x inside the domain16:sFALSIFIER_CLASS3:sF36:sBEARS12:l4:sKIN3:sN210:sDIMENSION3:sL1247:l5:sNAME4:sE_z4:sDOF2:sz7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY7:sheight15:sIDENTIFICATION32:sz is the height above the track10:sFALSIFIER32:sany measured z different from 016:sFALSIFIER_CLASS3:sF36:sBEARS18:l6:sC_NOZ7:sFREE_Z10:sDIMENSION3:sL1"
},
{
"id": "digest/toy-TrM",
"fn": "d_trm",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTrM6:s0.5.0416:l7:sHEADER204:l22:sENVIRONMENT_INVENTORY174:l52:l21:sENVIRONMENT_QUANTITY7:sheight10:sDIMENSION3:sL154:l21:sENVIRONMENT_QUANTITY9:sposition10:sDIMENSION3:sL158:l21:sENVIRONMENT_QUANTITY9:svelocity10:sDIMENSION7:sL1 T-1108:l10:sSIGNATURE91:l87:l5:sNAME16:stime_derivative5:sOVER9:l2:sv2:sx6:sIMAGE31:sd/dt maps position to velocity83:l16:sTRANSFORMATIONS60:l56:l5:sNAME17:stime_translation10:sSTATEMENT12:st -> t + t0861:l8:sENTRIES846:l273:l5:sNAME4:sE_v4:sDOF2:sv7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:svelocity15:sIDENTIFICATION30:sv is the time derivative of x10:sFALSIFIER60:sa measured velocity differing from dx/dt beyond uncertainty16:sFALSIFIER_CLASS3:sF26:sBEARS7:l4:sKIN10:sDIMENSION7:sL1 T-1313:l5:sNAME4:sE_x4:sDOF2:sx7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:sposition15:sIDENTIFICATION61:sx is the displacement from equilibrium along the spring axis10:sFALSIFIER67:sa measured restoring force not proportional to x inside the domain16:sFALSIFIER_CLASS3:sF36:sBEARS12:l4:sKIN3:sN210:sDIMENSION3:sL1247:l5:sNAME4:sE_z4:sDOF2:sz7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY7:sheight15:sIDENTIFICATION32:sz is the height above the track10:sFALSIFIER32:sany measured z different from 016:sFALSIFIER_CLASS3:sF36:sBEARS18:l6:sC_NOZ7:sFREE_Z10:sDIMENSION3:sL1",
"expect": "4a92a302ba3b4701b3058c3985ce6a250c29d98d3abe15e19bd04ba56c9bca23"
},
{
"id": "preimage/toy-TMS",
"fn": "zone_preimage",
"input": {
"zone": "TMS",
"value": {
"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": []
}
]
}
},
"expect": "l4:sTMS6:s0.5.0212:l11:sPARAMETERS193:l16:sSTEP_CONVENTION71:sone application of an inference rule or algebraic identity is one step2:sK2:s24:sN_X2:i26:sS_MAX3:i1011:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON79:l10:sCONSTANTS62:l26:l5:sNAME4:sw_a6:sVALUE2:s129:l5:sNAME4:sw_s6:sVALUE5:s5e-1105:l11:sYARDSTICKS87:l83:l5:sNAME18:scombined_distance4:sKEY31:l4:sSR117:sWSUM:w_a*A;w_s*S2:sS9:sLIMITING1:l"
},
{
"id": "digest/toy-TMS",
"fn": "d_tms",
"input": {
"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": []
}
]
}
},
"preimage": "l4:sTMS6:s0.5.0212:l11:sPARAMETERS193:l16:sSTEP_CONVENTION71:sone application of an inference rule or algebraic identity is one step2:sK2:s24:sN_X2:i26:sS_MAX3:i1011:sIC2_POLICY4:sGAP16:sPROMOTION_FLOOR3:sF216:sSTRUCTURE_CHECK3:sON79:l10:sCONSTANTS62:l26:l5:sNAME4:sw_a6:sVALUE2:s129:l5:sNAME4:sw_s6:sVALUE5:s5e-1105:l11:sYARDSTICKS87:l83:l5:sNAME18:scombined_distance4:sKEY31:l4:sSR117:sWSUM:w_a*A;w_s*S2:sS9:sLIMITING1:l",
"expect": "7a962e2297d6798801fa2593be9cd92995cc3a5f9c817cc8a19335c625784128"
},
{
"id": "digest/toy-TFK",
"fn": "d_tfk_of",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"note": "combine_digests of the three toy zone digests above (D97.1)",
"expect": "31a356815ab76ffb69c016c4e163c1862ec84aca6590c6083b6859727dfee335"
},
{
"id": "preimage/spring-forms-TPK",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "ROLE enters after REFS; EQUATION and CONDITION after it in their canonical spelling",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE148:l4:sDOF137:l30:l5:sNAME2:st10:sDIMENSION3:sT134:l5:sNAME2:sv10:sDIMENSION7:sL1 T-130:l5:sNAME2:sx10:sDIMENSION3:sL130:l5:sNAME2:sz10:sDIMENSION3:sL1174:l9:sCONSTANT158:l36:l5:sNAME4:sk_s10:sDIMENSION7:sM1 T-230:l5:sNAME2:sm10:sDIMENSION3:sM182:l5:sNAME6:sx_max10:sDIMENSION3:sL16:sVALUE5:s5e-25:sUNIT2:sm12:sUNCERTAINTY5:s1e-3359:l4:sLAW348:l109:l5:sNAME7:sFREE_Z10:sSTATEMENT12:sd2z/dt2 = 05:sREFS9:l2:st2:sz5:sROLE11:sCONSTRAINT9:sEQUATION11:sD(z,t,2)=0101:l5:sNAME4:sKIN10:sSTATEMENT10:sdx/dt = v5:sREFS13:l2:st2:sv2:sx5:sROLE7:sEOM(x)9:sEQUATION9:sD(x,t)=v125:l5:sNAME3:sN210:sSTATEMENT17:sm dv/dt = -k_s x5:sREFS23:l4:sk_s2:sm2:st2:sv2:sx5:sROLE7:sEOM(v)9:sEQUATION16:sm*D(v,t)=-k_s*x122:l11:sASSUMPTION103:l99:l5:sNAME6:sA_lin12:sPROPOSITION51:sthe restoring force is linear in x (Hooke r\u00e9gime)5:sREFS5:l2:sx132:l11:sCONSTRAINT113:l108:l5:sNAME6:sC_NOZ7:sTARGET2:sz7:sACTION4:sFIX10:sSTATEMENT25:smotion confined to z = 06:sVALUE2:s05:sUNIT2:sm118:l9:sBOUNDARY102:l98:l5:sNAME8:sB_small10:sPREDICATE12:s|x| < x_max5:sREFS13:l2:sx6:sx_max10:sCONDITION13:sabs(x)<x_max"
},
{
"id": "digest/spring-forms-TPK",
"fn": "d_tpk",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE148:l4:sDOF137:l30:l5:sNAME2:st10:sDIMENSION3:sT134:l5:sNAME2:sv10:sDIMENSION7:sL1 T-130:l5:sNAME2:sx10:sDIMENSION3:sL130:l5:sNAME2:sz10:sDIMENSION3:sL1174:l9:sCONSTANT158:l36:l5:sNAME4:sk_s10:sDIMENSION7:sM1 T-230:l5:sNAME2:sm10:sDIMENSION3:sM182:l5:sNAME6:sx_max10:sDIMENSION3:sL16:sVALUE5:s5e-25:sUNIT2:sm12:sUNCERTAINTY5:s1e-3359:l4:sLAW348:l109:l5:sNAME7:sFREE_Z10:sSTATEMENT12:sd2z/dt2 = 05:sREFS9:l2:st2:sz5:sROLE11:sCONSTRAINT9:sEQUATION11:sD(z,t,2)=0101:l5:sNAME4:sKIN10:sSTATEMENT10:sdx/dt = v5:sREFS13:l2:st2:sv2:sx5:sROLE7:sEOM(x)9:sEQUATION9:sD(x,t)=v125:l5:sNAME3:sN210:sSTATEMENT17:sm dv/dt = -k_s x5:sREFS23:l4:sk_s2:sm2:st2:sv2:sx5:sROLE7:sEOM(v)9:sEQUATION16:sm*D(v,t)=-k_s*x122:l11:sASSUMPTION103:l99:l5:sNAME6:sA_lin12:sPROPOSITION51:sthe restoring force is linear in x (Hooke r\u00e9gime)5:sREFS5:l2:sx132:l11:sCONSTRAINT113:l108:l5:sNAME6:sC_NOZ7:sTARGET2:sz7:sACTION4:sFIX10:sSTATEMENT25:smotion confined to z = 06:sVALUE2:s05:sUNIT2:sm118:l9:sBOUNDARY102:l98:l5:sNAME8:sB_small10:sPREDICATE12:s|x| < x_max5:sREFS13:l2:sx6:sx_max10:sCONDITION13:sabs(x)<x_max",
"expect": "3281bc7890cb913b7dbda5a190c72f38a993cffd0d27a73a361dbbd70291686c"
},
{
"id": "preimage/spring-forms-TrM",
"fn": "zone_preimage",
"input": {
"zone": "TrM",
"value": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
}
},
"note": "FORM and IMAGE_FORM enter after IMAGE in their canonical spelling",
"expect": "l4:sTrM6:s0.5.0537:l7:sHEADER257:l22:sENVIRONMENT_INVENTORY227:l52:l21:sENVIRONMENT_QUANTITY7:sheight10:sDIMENSION3:sL154:l21:sENVIRONMENT_QUANTITY9:sposition10:sDIMENSION3:sL150:l21:sENVIRONMENT_QUANTITY5:stime10:sDIMENSION3:sT158:l21:sENVIRONMENT_QUANTITY9:svelocity10:sDIMENSION7:sL1 T-1176:l10:sSIGNATURE158:l153:l5:sNAME16:stime_derivative5:sOVER13:l2:st2:sv2:sx6:sIMAGE31:sd/dt maps position to velocity5:sFORM9:sD(x,t)=v11:sIMAGE_FORM26:sD(position,time)=velocity83:l16:sTRANSFORMATIONS60:l56:l5:sNAME17:stime_translation10:sSTATEMENT12:st -> t + t01131:l8:sENTRIES1115:l265:l5:sNAME4:sE_t4:sDOF2:st7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY5:stime15:sIDENTIFICATION34:st is the laboratory clock reading10:sFALSIFIER68:stwo laboratory clocks that disagree beyond their stated uncertainty16:sFALSIFIER_CLASS3:sF36:sBEARS1:l10:sDIMENSION3:sT1273:l5:sNAME4:sE_v4:sDOF2:sv7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:svelocity15:sIDENTIFICATION30:sv is the time derivative of x10:sFALSIFIER60:sa measured velocity differing from dx/dt beyond uncertainty16:sFALSIFIER_CLASS3:sF26:sBEARS7:l4:sKIN10:sDIMENSION7:sL1 T-1313:l5:sNAME4:sE_x4:sDOF2:sx7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:sposition15:sIDENTIFICATION61:sx is the displacement from equilibrium along the spring axis10:sFALSIFIER67:sa measured restoring force not proportional to x inside the domain16:sFALSIFIER_CLASS3:sF36:sBEARS12:l4:sKIN3:sN210:sDIMENSION3:sL1247:l5:sNAME4:sE_z4:sDOF2:sz7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY7:sheight15:sIDENTIFICATION32:sz is the height above the track10:sFALSIFIER32:sany measured z different from 016:sFALSIFIER_CLASS3:sF36:sBEARS18:l6:sC_NOZ7:sFREE_Z10:sDIMENSION3:sL1"
},
{
"id": "digest/spring-forms-TrM",
"fn": "d_trm",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
}
},
"preimage": "l4:sTrM6:s0.5.0537:l7:sHEADER257:l22:sENVIRONMENT_INVENTORY227:l52:l21:sENVIRONMENT_QUANTITY7:sheight10:sDIMENSION3:sL154:l21:sENVIRONMENT_QUANTITY9:sposition10:sDIMENSION3:sL150:l21:sENVIRONMENT_QUANTITY5:stime10:sDIMENSION3:sT158:l21:sENVIRONMENT_QUANTITY9:svelocity10:sDIMENSION7:sL1 T-1176:l10:sSIGNATURE158:l153:l5:sNAME16:stime_derivative5:sOVER13:l2:st2:sv2:sx6:sIMAGE31:sd/dt maps position to velocity5:sFORM9:sD(x,t)=v11:sIMAGE_FORM26:sD(position,time)=velocity83:l16:sTRANSFORMATIONS60:l56:l5:sNAME17:stime_translation10:sSTATEMENT12:st -> t + t01131:l8:sENTRIES1115:l265:l5:sNAME4:sE_t4:sDOF2:st7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY5:stime15:sIDENTIFICATION34:st is the laboratory clock reading10:sFALSIFIER68:stwo laboratory clocks that disagree beyond their stated uncertainty16:sFALSIFIER_CLASS3:sF36:sBEARS1:l10:sDIMENSION3:sT1273:l5:sNAME4:sE_v4:sDOF2:sv7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:svelocity15:sIDENTIFICATION30:sv is the time derivative of x10:sFALSIFIER60:sa measured velocity differing from dx/dt beyond uncertainty16:sFALSIFIER_CLASS3:sF26:sBEARS7:l4:sKIN10:sDIMENSION7:sL1 T-1313:l5:sNAME4:sE_x4:sDOF2:sx7:sDOMAIN12:s|x| < x_max21:sENVIRONMENT_QUANTITY9:sposition15:sIDENTIFICATION61:sx is the displacement from equilibrium along the spring axis10:sFALSIFIER67:sa measured restoring force not proportional to x inside the domain16:sFALSIFIER_CLASS3:sF36:sBEARS12:l4:sKIN3:sN210:sDIMENSION3:sL1247:l5:sNAME4:sE_z4:sDOF2:sz7:sDOMAIN7:salways21:sENVIRONMENT_QUANTITY7:sheight15:sIDENTIFICATION32:sz is the height above the track10:sFALSIFIER32:sany measured z different from 016:sFALSIFIER_CLASS3:sF36:sBEARS18:l6:sC_NOZ7:sFREE_Z10:sDIMENSION3:sL1",
"expect": "8a883cf8c7712125f71ec1286951553205d9d00699af82e079ace3a2f7eb4087"
},
{
"id": "digest/spring-forms-TFK",
"fn": "d_tfk_of",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"note": "the tutorial's spring with its forms and ROLEs under schema 0.5.0",
"expect": "78334d466495e9a98c92176244c2d79f7662be724bb478aa8dabcbe523394067"
},
{
"id": "invariance/reordered-TPK-same-digest",
"fn": "d_tpk",
"input": {
"tpk": {
"BOUNDARY": [
{
"REFS": [
"x_max",
"x"
],
"PREDICATE": "|x| < x_max",
"NAME": "B_small"
}
],
"CONSTRAINT": [
{
"STATEMENT": "motion confined to z = 0",
"UNIT": "m",
"VALUE": "0",
"ACTION": "FIX",
"TARGET": "z",
"NAME": "C_NOZ"
}
],
"ASSUMPTION": [
{
"REFS": [
"x"
],
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"NAME": "A_lin"
}
],
"LAW": [
{
"ROLE": "CONSTRAINT",
"REFS": [
"z"
],
"STATEMENT": "d2z/dt2 = 0",
"NAME": "FREE_Z"
},
{
"ROLE": "EOM(x)",
"REFS": [
"v",
"x"
],
"STATEMENT": "dx/dt = v",
"NAME": "KIN"
},
{
"ROLE": "EOM(v)",
"REFS": [
"x",
"k_s",
"v",
"m"
],
"STATEMENT": "m dv/dt = -k_s x",
"NAME": "N2"
}
],
"CONSTANT": [
{
"UNCERTAINTY": "0.001",
"UNIT": "m",
"VALUE": "0.05",
"DIMENSION": "L1",
"NAME": "x_max"
},
{
"DIMENSION": "M1 T-2",
"NAME": "k_s"
},
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v"
},
{
"DIMENSION": "L1",
"NAME": "x"
}
]
}
},
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "invariance/reordered-TrM-same-digest",
"fn": "d_trm",
"input": {
"trm": {
"ENTRIES": [
{
"DIMENSION": "L1",
"BEARS": [
"C_NOZ",
"FREE_Z"
],
"FALSIFIER_CLASS": "F3",
"FALSIFIER": "any measured z different from 0",
"IDENTIFICATION": "z is the height above the track",
"ENVIRONMENT_QUANTITY": "height",
"DOMAIN": "always",
"DOF": "z",
"NAME": "E_z"
},
{
"DIMENSION": "L1 T-1",
"BEARS": [
"KIN"
],
"FALSIFIER_CLASS": "F2",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"IDENTIFICATION": "v is the time derivative of x",
"ENVIRONMENT_QUANTITY": "velocity",
"DOMAIN": "|x| < x_max",
"DOF": "v",
"NAME": "E_v"
},
{
"DIMENSION": "L1",
"BEARS": [
"KIN",
"N2"
],
"FALSIFIER_CLASS": "F3",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"ENVIRONMENT_QUANTITY": "position",
"DOMAIN": "|x| < x_max",
"DOF": "x",
"NAME": "E_x"
}
],
"HEADER": {
"TRANSFORMATIONS": [
{
"STATEMENT": "t -> t + t0",
"NAME": "time_translation"
}
],
"SIGNATURE": [
{
"IMAGE": "d/dt maps position to velocity",
"OVER": [
"v",
"x"
],
"NAME": "time_derivative"
}
],
"ENVIRONMENT_INVENTORY": [
{
"DIMENSION": "L1",
"ENVIRONMENT_QUANTITY": "height"
},
{
"DIMENSION": "L1 T-1",
"ENVIRONMENT_QUANTITY": "velocity"
},
{
"DIMENSION": "L1",
"ENVIRONMENT_QUANTITY": "position"
}
]
}
}
},
"expect": "4a92a302ba3b4701b3058c3985ce6a250c29d98d3abe15e19bd04ba56c9bca23"
},
{
"id": "invariance/reordered-TMS-same-digest",
"fn": "d_tms",
"input": {
"tms": {
"YARDSTICKS": [
{
"LIMITING": [],
"KEY": [
"SR1",
"WSUM:w_a*A;w_s*S",
"S"
],
"NAME": "combined_distance"
}
],
"CONSTANTS": [
{
"VALUE": "0.5",
"NAME": "w_s"
},
{
"VALUE": "1",
"NAME": "w_a"
}
],
"PARAMETERS": {
"S_MAX": 10,
"N_X": 2,
"K": "2",
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step"
}
}
},
"expect": "7a962e2297d6798801fa2593be9cd92995cc3a5f9c817cc8a19335c625784128"
},
{
"id": "invariance/NFD-text-same-digest",
"fn": "d_tpk",
"input": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke re\u0301gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "successor/reordered",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TMS": {
"YARDSTICKS": [
{
"LIMITING": [],
"KEY": [
"SR1",
"WSUM:w_a*A;w_s*S",
"S"
],
"NAME": "combined_distance"
}
],
"CONSTANTS": [
{
"VALUE": "0.5",
"NAME": "w_s"
},
{
"VALUE": "1",
"NAME": "w_a"
}
],
"PARAMETERS": {
"S_MAX": 10,
"N_X": 2,
"K": "2",
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step"
}
},
"TrM": {
"ENTRIES": [
{
"DIMENSION": "L1",
"BEARS": [
"C_NOZ",
"FREE_Z"
],
"FALSIFIER_CLASS": "F3",
"FALSIFIER": "any measured z different from 0",
"IDENTIFICATION": "z is the height above the track",
"ENVIRONMENT_QUANTITY": "height",
"DOMAIN": "always",
"DOF": "z",
"NAME": "E_z"
},
{
"DIMENSION": "L1 T-1",
"BEARS": [
"KIN"
],
"FALSIFIER_CLASS": "F2",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"IDENTIFICATION": "v is the time derivative of x",
"ENVIRONMENT_QUANTITY": "velocity",
"DOMAIN": "|x| < x_max",
"DOF": "v",
"NAME": "E_v"
},
{
"DIMENSION": "L1",
"BEARS": [
"KIN",
"N2"
],
"FALSIFIER_CLASS": "F3",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"ENVIRONMENT_QUANTITY": "position",
"DOMAIN": "|x| < x_max",
"DOF": "x",
"NAME": "E_x"
}
],
"HEADER": {
"TRANSFORMATIONS": [
{
"STATEMENT": "t -> t + t0",
"NAME": "time_translation"
}
],
"SIGNATURE": [
{
"IMAGE": "d/dt maps position to velocity",
"OVER": [
"v",
"x"
],
"NAME": "time_derivative"
}
],
"ENVIRONMENT_INVENTORY": [
{
"DIMENSION": "L1",
"ENVIRONMENT_QUANTITY": "height"
},
{
"DIMENSION": "L1 T-1",
"ENVIRONMENT_QUANTITY": "velocity"
},
{
"DIMENSION": "L1",
"ENVIRONMENT_QUANTITY": "position"
}
]
}
},
"TPK": {
"BOUNDARY": [
{
"REFS": [
"x_max",
"x"
],
"PREDICATE": "|x| < x_max",
"NAME": "B_small"
}
],
"CONSTRAINT": [
{
"STATEMENT": "motion confined to z = 0",
"UNIT": "m",
"VALUE": "0",
"ACTION": "FIX",
"TARGET": "z",
"NAME": "C_NOZ"
}
],
"ASSUMPTION": [
{
"REFS": [
"x"
],
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"NAME": "A_lin"
}
],
"LAW": [
{
"ROLE": "CONSTRAINT",
"REFS": [
"z"
],
"STATEMENT": "d2z/dt2 = 0",
"NAME": "FREE_Z"
},
{
"ROLE": "EOM(x)",
"REFS": [
"v",
"x"
],
"STATEMENT": "dx/dt = v",
"NAME": "KIN"
},
{
"ROLE": "EOM(v)",
"REFS": [
"x",
"k_s",
"v",
"m"
],
"STATEMENT": "m dv/dt = -k_s x",
"NAME": "N2"
}
],
"CONSTANT": [
{
"UNCERTAINTY": "0.001",
"UNIT": "m",
"VALUE": "0.05",
"DIMENSION": "L1",
"NAME": "x_max"
},
{
"DIMENSION": "M1 T-2",
"NAME": "k_s"
},
{
"DIMENSION": "M1",
"NAME": "m"
}
],
"DOF": [
{
"DIMENSION": "L1",
"NAME": "z"
},
{
"DIMENSION": "L1 T-1",
"NAME": "v"
},
{
"DIMENSION": "L1",
"NAME": "x"
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/nfd",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke re\u0301gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/falsifier-class-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "CORRESPONDENCE_CHANGED"
},
{
"id": "successor/header-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0, t0 real"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "CORRESPONDENCE_CHANGED"
},
{
"id": "successor/k-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"TMS": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "3",
"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": []
}
]
}
}
},
"expect": "YARDSTICK_ONLY"
},
{
"id": "successor/ic2-tightened-to-reject",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"TMS": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"IC2_POLICY": "REJECT"
},
"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": []
}
]
}
}
},
"expect": "YARDSTICK_ONLY"
},
{
"id": "successor/promotion-floor-raised",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"TMS": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "F3"
},
"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": []
}
]
}
}
},
"expect": "YARDSTICK_ONLY"
},
{
"id": "successor/promotion-floor-explicit-default",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"TMS": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2",
"N_X": 2,
"S_MAX": 10,
"PROMOTION_FLOOR": "F2"
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/crlf-is-lf",
"fn": "classify_successor",
"input": {
"a": {
"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\n= v",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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\r\n= v",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/lone-cr-is-lf",
"fn": "classify_successor",
"input": {
"a": {
"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\n= v",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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\r= v",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "t1/crlf-and-tab-are-accepted",
"fn": "t1_well_formed",
"input": {
"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\r\n\t= -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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "successor/key-order-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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",
"S",
"WSUM:w_a*A;w_s*S"
],
"LIMITING": []
}
]
}
}
},
"expect": "YARDSTICK_ONLY"
},
{
"id": "successor/key-terms-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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_s*S;w_a*A",
"NEG:NEG:S"
],
"LIMITING": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/decimals-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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": "5e-2",
"UNIT": "m",
"UNCERTAINTY": "0.0010"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "-0.0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"TMS": {
"PARAMETERS": {
"STEP_CONVENTION": "one application of an inference rule or algebraic identity is one step",
"K": "2.0",
"N_X": 2,
"S_MAX": 10
},
"CONSTANTS": [
{
"NAME": "w_a",
"VALUE": "1"
},
{
"NAME": "w_s",
"VALUE": "5E-1"
}
],
"YARDSTICKS": [
{
"NAME": "combined_distance",
"KEY": [
"SR1",
"WSUM:w_a*A;w_s*S",
"S"
],
"LIMITING": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/tpk-dimensions-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "T-1 L1"
},
{
"NAME": "z",
"DIMENSION": "L1"
}
],
"CONSTANT": [
{
"NAME": "m",
"DIMENSION": "M1"
},
{
"NAME": "k_s",
"DIMENSION": "T-1 M1 T-1 L0"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/trm-dimensions-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L2 T-1 L-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "T-1 L1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/law-statement-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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 + 0",
"REFS": [
"x",
"v"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/kernel-and-correspondence-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-2"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-2"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/limiting-reordered",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": [
{
"DOMAIN": "b_dom",
"KEY": [
"SR1",
"NEG:A"
]
},
{
"DOMAIN": "a_dom",
"KEY": [
"SR1",
"S"
]
}
]
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": [
{
"DOMAIN": "a_dom",
"KEY": [
"SR1",
"S"
]
},
{
"DOMAIN": "b_dom",
"KEY": [
"SR1",
"NEG:A"
]
}
]
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/unit-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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",
"VALUE": "40",
"UNIT": "kg s-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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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",
"VALUE": "40",
"UNIT": "s-2 kg1"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"note": "the preimage carries the canonical spelling kg s-2 (D104.1)",
"expect": "IDENTICAL"
},
{
"id": "successor/same-quantity-other-unit",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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": "5",
"UNIT": "cm",
"UNCERTAINTY": "0.1"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/fix-unit-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "mm",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/forms-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m*D(v,t,1)=((-k_s*x))"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"note": "whitespace, D(x,t,1) and redundant enclosing parentheses: one canonical spelling (S10)",
"expect": "IDENTICAL"
},
{
"id": "successor/form-operands-reordered",
"fn": "classify_successor",
"input": {
"a": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "D(v, t) * m = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"note": "only spelling is canonical: m*D(v,t) and D(v,t)*m are different statements",
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/form-removed",
"fn": "classify_successor",
"input": {
"a": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/image-form-respelled",
"fn": "classify_successor",
"input": {
"a": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/signature-form-removed",
"fn": "classify_successor",
"input": {
"a": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"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_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to 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": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "time",
"DIMENSION": "T1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v",
"t"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
},
{
"NAME": "E_t",
"DOF": "t",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "time",
"IDENTIFICATION": "t is the laboratory clock reading",
"FALSIFIER": "two laboratory clocks that disagree beyond their stated uncertainty",
"FALSIFIER_CLASS": "F3",
"BEARS": [],
"DIMENSION": "T1"
}
]
},
"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": []
}
]
}
}
},
"expect": "CORRESPONDENCE_CHANGED"
},
{
"id": "successor/schema-0.4.0-toy-under-0.5.0",
"fn": "d_tfk_of",
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"note": "the toy without forms under schema 0.5.0, its LAWs carrying ROLE: its D(TFK) under 0.4.0 (no ROLE) was 09a229d76bbf580abe7d7c10985fc804ef842f733a331f2a14fc92c12d664798, under 0.3.0 3e92bae72f437acac87d3f6a0683978cf629e61df17bed2ceb5e9da3c8c352b1; the version tag moves every zone digest",
"expect": "31a356815ab76ffb69c016c4e163c1862ec84aca6590c6083b6859727dfee335"
},
{
"id": "dim/normalize/s15-L9999",
"fn": "normalize_dimension",
"input": {
"s": "L9999"
},
"expect": "L9999"
},
{
"id": "dim/normalize/s15-L-9999",
"fn": "normalize_dimension",
"input": {
"s": "L-9999"
},
"expect": "L-9999"
},
{
"id": "dim/normalize/s15-L9999_L1",
"fn": "normalize_dimension",
"input": {
"s": "L9999 L1"
},
"expect": "null"
},
{
"id": "dim/normalize/s15-L9999_L9999",
"fn": "normalize_dimension",
"input": {
"s": "L9999 L9999"
},
"expect": "null"
},
{
"id": "dim/normalize/s15-L-9999_L-1",
"fn": "normalize_dimension",
"input": {
"s": "L-9999 L-1"
},
"expect": "null"
},
{
"id": "dim/normalize/s15-L5000_L4999",
"fn": "normalize_dimension",
"input": {
"s": "L5000 L4999"
},
"expect": "L9999"
},
{
"id": "dim/normalize/s15-L9999_L-1_L1",
"fn": "normalize_dimension",
"input": {
"s": "L9999 L-1 L1"
},
"expect": "L9999"
},
{
"id": "dim/normalize/s15-L9999_L9999_L-9999",
"fn": "normalize_dimension",
"input": {
"s": "L9999 L9999 L-9999"
},
"expect": "L9999"
},
{
"id": "dim/normalize/s15-T9999_TH9999_TH1",
"fn": "normalize_dimension",
"input": {
"s": "T9999 TH9999 TH1"
},
"expect": "null"
},
{
"id": "dim/normalize/s15-M1_M-1_L9999_L1_L-1",
"fn": "normalize_dimension",
"input": {
"s": "M1 M-1 L9999 L1 L-1"
},
"expect": "L9999"
},
{
"id": "dim/normalize/s15-L9999_L1_Q1",
"fn": "normalize_dimension",
"input": {
"s": "L9999 L1 Q1"
},
"expect": "null"
},
{
"id": "dim/is_canonical/s15-L9999",
"fn": "is_canonical_dimension",
"input": {
"s": "L9999"
},
"expect": "true"
},
{
"id": "dim/is_canonical/s15-L-9999",
"fn": "is_canonical_dimension",
"input": {
"s": "L-9999"
},
"expect": "true"
},
{
"id": "dim/is_canonical/s15-L10000",
"fn": "is_canonical_dimension",
"input": {
"s": "L10000"
},
"note": "tpc_zone 0.4.0 answered true: its canonical token had no digit bound",
"expect": "false"
},
{
"id": "dim/is_canonical/s15-L-10000",
"fn": "is_canonical_dimension",
"input": {
"s": "L-10000"
},
"note": "tpc_zone 0.4.0 answered true: its canonical token had no digit bound",
"expect": "false"
},
{
"id": "dim/is_canonical/s15-L1_T-10000",
"fn": "is_canonical_dimension",
"input": {
"s": "L1 T-10000"
},
"note": "tpc_zone 0.4.0 answered true: its canonical token had no digit bound",
"expect": "false"
},
{
"id": "t1/s15-dof-dimension-out-of-range",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L9999 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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "tpc_zone 0.4.0 admitted it as L10000, a DIMENSION its own grammar refuses",
"expect": "[false,[DOF:x: DIMENSION L9999 L1: an exponent is out of range]]"
},
{
"id": "t1/s15-dof-dimension-sum-at-bound",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L5000 L-4999"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "the sum is L1: accepted, spelled L1",
"expect": "[true,[]]"
},
{
"id": "t1/s15-constant-with-unit",
"fn": "t1_well_formed",
"input": {
"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": "L9999 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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "the UNIT check stays silent on a DIMENSION that does not parse",
"expect": "[false,[CONSTANT:x_max: DIMENSION L9999 L1: an exponent is out of range]]"
},
{
"id": "t1/s15-fix-target",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L-9999 L-1"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[DOF:z: DIMENSION L-9999 L-1: an exponent is out of range]]"
},
{
"id": "t1/s15-bad-token-first",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L9999 L1 Q1"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "a token that does not parse is reported as before",
"expect": "[false,[DOF:x: DIMENSION L9999 L1 Q1 is not a dimension]]"
},
{
"id": "trm/s15-env-dimension-out-of-range",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L9999 L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENV:position: DIMENSION L9999 L1: an exponent is out of range]]"
},
{
"id": "trm/s15-entry-dimension-out-of-range",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "T9999 TH9999 TH1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "[false,[ENTRY:E_x: DIMENSION T9999 TH9999 TH1: an exponent is out of range]]"
},
{
"id": "invariance/s15-dimension-sum-within-bound-same-digest",
"fn": "d_tpk",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L5000 L-4999"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "an admitted respelling keeps the toy's D(TPK)",
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "successor/s15-dimension-sum-within-bound",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L5000 L-4999"
},
{
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "t1/s050-law-role-CONSTRAINT",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-CONSTITUTIVE",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTITUTIVE",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-INVARIANT",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "INVARIANT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-DEFINITION",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "DEFINITION",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-EOM(z)",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-EOM(x)",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "EOM of the D variable, or of a second law's DOF, passes T1: any other consistency of a ROLE is the structure check's finding (S31)",
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-EOM(t)",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(t)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "EOM of the D variable, or of a second law's DOF, passes T1: any other consistency of a ROLE is the structure check's finding (S31)",
"expect": "[true,[]]"
},
{
"id": "t1/s050-law-role-refused-lower-eom",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "eom(z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE eom(z) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-space-before-paren",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM (z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM (z) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-space-inside-left",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM( z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM( z) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-space-inside-right",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z )",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(z ) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-unclosed",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(z is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-empty-name",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM()",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM() is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-name-not-identifier",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(1z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(1z) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-two-names",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z,t)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(z,t) is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-bare-EOM",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-lower-word",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "constraint",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE constraint is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-mixed-case-word",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "Constraint",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE Constraint is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-trailing-space",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT ",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE CONSTRAINT is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-leading-space",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": " CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE CONSTRAINT is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-empty",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-dof-role-on-law",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "INPUT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE INPUT is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-trailing-newline",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z)\n",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(z)\n is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-brackets",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM[z]",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM[z] is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-refused-plural",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "DEFINITIONS",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE DEFINITIONS is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION]]"
},
{
"id": "t1/s050-law-role-hidden-character",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(z)\u202e",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(z)<U+202E> is not EOM(<DOF>), CONSTRAINT, CONSTITUTIVE, INVARIANT or DEFINITION,LAW:FREE_Z: field ROLE contains disallowed character U+202E]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-constant",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(k_s)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(k_s) names k_s, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-unresolved",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(q)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(q) names q, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-law",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(KIN)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(KIN) names KIN, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-constraint",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(C_NOZ)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(C_NOZ) names C_NOZ, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-environment-quantity",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(position)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(position) names position, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-eom-not-a-dof-itself",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "EOM(FREE_Z)",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: ROLE EOM(FREE_Z) names FREE_Z, which is not a DOF]]"
},
{
"id": "t1/s050-law-role-missing",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "ROLE is required on every LAW under schema 0.5.0",
"expect": "[false,[LAW:FREE_Z: missing field ROLE]]"
},
{
"id": "t1/s050-law-role-missing-toy",
"fn": "t1_well_formed",
"input": {
"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"
]
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z"
],
"ROLE": "CONSTRAINT"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "a law without a form still carries a ROLE",
"expect": "[false,[LAW:KIN: missing field ROLE]]"
},
{
"id": "t1/s050-law-role-wrong-type-integer",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": 7,
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: field ROLE has the wrong type]]"
},
{
"id": "t1/s050-law-role-wrong-type-list",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": [
"EOM(z)"
],
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: field ROLE has the wrong type]]"
},
{
"id": "t1/s050-law-role-wrong-type-null",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": null,
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: field ROLE has the wrong type]]"
},
{
"id": "t1/s050-dof-role-INPUT",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "INPUT"
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "an INPUT DOF named in EOM(x) passes T1: the structure check lists the ROLE MISMATCH (S31)",
"expect": "[true,[]]"
},
{
"id": "t1/s050-dof-role-refused-lower",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "input"
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE input is not INPUT]]"
},
{
"id": "t1/s050-dof-role-refused-eom",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "EOM(x)"
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE EOM(x) is not INPUT]]"
},
{
"id": "t1/s050-dof-role-refused-empty",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": ""
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE is not INPUT]]"
},
{
"id": "t1/s050-dof-role-refused-trailing-space",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "INPUT "
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE INPUT is not INPUT]]"
},
{
"id": "t1/s050-dof-role-refused-law-word",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "CONSTRAINT"
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE CONSTRAINT is not INPUT]]"
},
{
"id": "t1/s050-dof-role-refused-plural",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": "INPUTS"
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: ROLE INPUTS is not INPUT]]"
},
{
"id": "t1/s050-dof-role-wrong-type",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1",
"ROLE": 1
},
{
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[DOF:x: field ROLE has the wrong type]]"
},
{
"id": "t1/s050-parameters-empty",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-parameters-ONE",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-parameters-SEVERAL",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-parameters-refused-lower",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "one"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: D_VARIABLES one is not ONE or SEVERAL]]"
},
{
"id": "t1/s050-parameters-refused-TWO",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "TWO"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: D_VARIABLES TWO is not ONE or SEVERAL]]"
},
{
"id": "t1/s050-parameters-refused-empty",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": ""
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: D_VARIABLES is not ONE or SEVERAL]]"
},
{
"id": "t1/s050-parameters-refused-trailing-space",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL "
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: D_VARIABLES SEVERAL is not ONE or SEVERAL]]"
},
{
"id": "t1/s050-parameters-hidden-character",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE\u202e"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: D_VARIABLES ONE<U+202E> is not ONE or SEVERAL,TPK PARAMETERS: field D_VARIABLES contains disallowed character U+202E]]"
},
{
"id": "t1/s050-parameters-wrong-type",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": 2
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: field D_VARIABLES has the wrong type]]"
},
{
"id": "t1/s050-parameters-unknown-field",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE",
"STRUCTURE_CHECK": "ON"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "STRUCTURE_CHECK is the TMS's, not the TPK's",
"expect": "[false,[TPK PARAMETERS: unknown field STRUCTURE_CHECK]]"
},
{
"id": "t1/s050-parameters-mutable-field",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"STATE": "OPEN"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK PARAMETERS: mutable field STATE is not permitted in the TFK]]"
},
{
"id": "t1/s050-parameters-string",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": "ONE",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK: PARAMETERS is not an object]]"
},
{
"id": "t1/s050-parameters-list",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": [
"ONE"
],
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK: PARAMETERS is not an object]]"
},
{
"id": "t1/s050-parameters-lower-part-unknown",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
],
"parameters": {
"D_VARIABLES": "ONE"
}
}
},
"note": "the part's name is spelled exactly",
"expect": "[false,[TPK: unknown kind parameters]]"
},
{
"id": "t1/s050-dvar-one-second-variable",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1"
},
{
"NAME": "tau",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"tau"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, tau) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "absent PARAMETERS means ONE: a second distinct D variable is T1's refusal",
"expect": "[false,[TPK: D_VARIABLES is ONE (ONE when absent), but the forms use D variables t (LAW:FREE_Z, LAW:N2), tau (LAW:KIN)]]"
},
{
"id": "t1/s050-dvar-explicit-one-second-variable",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1"
},
{
"NAME": "tau",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"tau"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, tau) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[TPK: D_VARIABLES is ONE (ONE when absent), but the forms use D variables t (LAW:FREE_Z, LAW:N2), tau (LAW:KIN)]]"
},
{
"id": "t1/s050-dvar-several-admits-second-variable",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1"
},
{
"NAME": "tau",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"tau"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, tau) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "t1/s050-dvar-malformed-switch-no-count",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "TWO"
},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1"
},
{
"NAME": "tau",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"tau"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, tau) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "a D_VARIABLES that is neither ONE nor SEVERAL is refused as a field; the count rule is not applied under it",
"expect": "[false,[TPK PARAMETERS: D_VARIABLES TWO is not ONE or SEVERAL]]"
},
{
"id": "t1/s050-dvar-constant",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"m"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, m) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "a CONSTANT is not a D variable (D177.1); T1's DIMENSION T1 requirement is removed",
"expect": "[false,[LAW:KIN: EQUATION's D variable m is not a DOF]]"
},
{
"id": "t1/s050-dvar-constant-under-one",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"m"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, m) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:KIN: EQUATION's D variable m is not a DOF,TPK: D_VARIABLES is ONE (ONE when absent), but the forms use D variables m (LAW:KIN), t (LAW:FREE_Z, LAW:N2)]]"
},
{
"id": "t1/s050-dvar-unresolved",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"q"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, q) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:KIN: EQUATION's D variable q is not a DOF,LAW:KIN: REFS q does not resolve]]"
},
{
"id": "t1/s050-dvar-fix-target",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
},
{
"NAME": "C_T",
"TARGET": "t",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "s",
"STATEMENT": "t = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "a FIXed clock is no D variable (D177.1)",
"expect": "[false,[LAW:FREE_Z: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T,LAW:KIN: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T,LAW:N2: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T]]"
},
{
"id": "t1/s050-dvar-remove-target",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
},
{
"NAME": "C_TR",
"TARGET": "t",
"ACTION": "REMOVE",
"STATEMENT": "no t"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:FREE_Z: EQUATION's D variable t is the TARGET of CONSTRAINT:C_TR,LAW:KIN: EQUATION's D variable t is the TARGET of CONSTRAINT:C_TR,LAW:N2: EQUATION's D variable t is the TARGET of CONSTRAINT:C_TR]]"
},
{
"id": "t1/s050-dvar-two-targets",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "N2",
"STATEMENT": "m dv/dt = -k_s x",
"REFS": [
"m",
"v",
"k_s",
"x"
],
"ROLE": "EOM(v)"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_T2",
"TARGET": "t",
"ACTION": "REMOVE",
"STATEMENT": "no t"
},
{
"NAME": "C_T1",
"TARGET": "t",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "s",
"STATEMENT": "t = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "each CONSTRAINT that targets the D variable is named; a law without a form uses no D variable",
"expect": "[false,[LAW:KIN: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T1,LAW:KIN: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T2]]"
},
{
"id": "t1/s050-dvar-corner-fix-t",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "EOM_Z",
"STATEMENT": "m d2z/dt2 = 0",
"REFS": [
"m",
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "m * D(z, t, 2) = 0"
}
],
"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"
},
{
"NAME": "C_T",
"TARGET": "t",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "s",
"STATEMENT": "t = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "out/D/examples/corner_fix_t.json with ROLEs added; T1 passed it under schema 0.4.0 (E-N7)",
"expect": "[false,[LAW:EOM_X: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T,LAW:EOM_Z: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T,LAW:KIN: EQUATION's D variable t is the TARGET of CONSTRAINT:C_T]]"
},
{
"id": "t1/s050-dvar-scaled-time-A21",
"fn": "t1_well_formed",
"input": {
"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"
],
"ROLE": "EOM(X)",
"EQUATION": "D(X, tau) = V"
},
{
"NAME": "N2",
"STATEMENT": "dV/dtau = -X",
"REFS": [
"X",
"V",
"tau"
],
"ROLE": "EOM(V)",
"EQUATION": "D(V, tau) = -X"
}
]
}
},
"note": "out/A/suite/A21 with ROLEs added: the D variable is a DOF of DIMENSION 1, admitted (D177.1)",
"expect": "[true,[]]"
},
{
"id": "t1/s050-dvar-unparsed-form-uses-none",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) ="
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "a form that does not parse uses no D variable; its refusal is reported once",
"expect": "[false,[LAW:KIN: EQUATION does not parse: unexpected end]]"
},
{
"id": "t1/s050-dvar-hidden-form-uses-none",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1"
},
{
"NAME": "tau",
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"tau"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, tau) = v\u202e"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"expect": "[false,[LAW:KIN: EQUATION does not parse: unexpected character <U+202E> at 14,LAW:KIN: field EQUATION contains disallowed character U+202E]]"
},
{
"id": "t1/s050-dvar-input-dof",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1"
},
{
"NAME": "t",
"DIMENSION": "T1",
"ROLE": "INPUT"
}
],
"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"
],
"ROLE": "EOM(v)",
"EQUATION": "m * D(v, t) = -k_s * x"
},
{
"NAME": "KIN",
"STATEMENT": "dx/dt = v",
"REFS": [
"x",
"v",
"t"
],
"ROLE": "EOM(x)",
"EQUATION": "D(x, t) = v"
},
{
"NAME": "FREE_Z",
"STATEMENT": "d2z/dt2 = 0",
"REFS": [
"z",
"t"
],
"ROLE": "CONSTRAINT",
"EQUATION": "D(z, t, 2) = 0"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
],
"CONDITION": "abs(x) < x_max"
}
]
}
},
"note": "a D variable that carries ROLE INPUT passes T1",
"expect": "[true,[]]"
},
{
"id": "tms/s050-structure-check-ON",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/s050-structure-check-OFF",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "tms/s050-structure-check-refused-lower",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: STRUCTURE_CHECK on is not ON or OFF]]"
},
{
"id": "tms/s050-structure-check-refused-YES",
"fn": "tms_well_formed",
"input": {
"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": "YES"
},
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: STRUCTURE_CHECK YES is not ON or OFF]]"
},
{
"id": "tms/s050-structure-check-refused-empty",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: STRUCTURE_CHECK is not ON or OFF]]"
},
{
"id": "tms/s050-structure-check-refused-trailing-space",
"fn": "tms_well_formed",
"input": {
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: STRUCTURE_CHECK OFF is not ON or OFF]]"
},
{
"id": "tms/s050-structure-check-boolean",
"fn": "tms_well_formed",
"input": {
"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": true
},
"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": []
}
]
}
},
"expect": "[false,[PARAMETERS: field STRUCTURE_CHECK has the wrong type]]"
},
{
"id": "invariance/s050-parameters-empty-same-digest",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "invariance/s050-parameters-explicit-ONE-same-digest",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"expect": "f3a2a5ac2c2413183a4da94b73da34d7cd5c408a01397262417c424298a40d90"
},
{
"id": "invariance/s050-structure-check-explicit-ON-same-digest",
"fn": "d_tms",
"input": {
"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": []
}
]
}
},
"expect": "7a962e2297d6798801fa2593be9cd92995cc3a5f9c817cc8a19335c625784128"
},
{
"id": "successor/s050-parameters-explicit-ONE",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"PARAMETERS": {
"D_VARIABLES": "ONE"
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/s050-parameters-SEVERAL",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"PARAMETERS": {
"D_VARIABLES": "SEVERAL"
},
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/s050-structure-check-explicit-ON",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "IDENTICAL"
},
{
"id": "successor/s050-structure-check-OFF",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "YARDSTICK_ONLY"
},
{
"id": "successor/s050-law-role-changed",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"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": "EOM(z)"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "successor/s050-dof-role-INPUT-added",
"fn": "classify_successor",
"input": {
"a": {
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
},
"b": {
"TPK": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1",
"ROLE": "INPUT"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
},
"TrM": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
},
{
"ENVIRONMENT_QUANTITY": "velocity",
"DIMENSION": "L1 T-1"
},
{
"ENVIRONMENT_QUANTITY": "height",
"DIMENSION": "L1"
}
],
"SIGNATURE": [
{
"NAME": "time_derivative",
"OVER": [
"x",
"v"
],
"IMAGE": "d/dt maps position to velocity"
}
],
"TRANSFORMATIONS": [
{
"NAME": "time_translation",
"STATEMENT": "t -> t + t0"
}
]
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the displacement from equilibrium along the spring axis",
"FALSIFIER": "a measured restoring force not proportional to x inside the domain",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"N2",
"KIN"
],
"DIMENSION": "L1"
},
{
"NAME": "E_v",
"DOF": "v",
"DOMAIN": "|x| < x_max",
"ENVIRONMENT_QUANTITY": "velocity",
"IDENTIFICATION": "v is the time derivative of x",
"FALSIFIER": "a measured velocity differing from dx/dt beyond uncertainty",
"FALSIFIER_CLASS": "F2",
"BEARS": [
"KIN"
],
"DIMENSION": "L1 T-1"
},
{
"NAME": "E_z",
"DOF": "z",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "height",
"IDENTIFICATION": "z is the height above the track",
"FALSIFIER": "any measured z different from 0",
"FALSIFIER_CLASS": "F3",
"BEARS": [
"FREE_Z",
"C_NOZ"
],
"DIMENSION": "L1"
}
]
},
"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": []
}
]
}
}
},
"expect": "KERNEL_CHANGED"
},
{
"id": "preimage/s050-dof-role-INPUT",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
},
{
"NAME": "v",
"DIMENSION": "L1 T-1"
},
{
"NAME": "z",
"DIMENSION": "L1",
"ROLE": "INPUT"
}
],
"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"
}
],
"ASSUMPTION": [
{
"NAME": "A_lin",
"PROPOSITION": "the restoring force is linear in x (Hooke r\u00e9gime)",
"REFS": [
"x"
]
}
],
"CONSTRAINT": [
{
"NAME": "C_NOZ",
"TARGET": "z",
"ACTION": "FIX",
"VALUE": "0",
"UNIT": "m",
"STATEMENT": "motion confined to z = 0"
}
],
"BOUNDARY": [
{
"NAME": "B_small",
"PREDICATE": "|x| < x_max",
"REFS": [
"x",
"x_max"
]
}
]
}
},
"note": "a DOF's ROLE enters after its DIMENSION; a DOF without ROLE serializes as under 0.4.0",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE130:l4:sDOF119:l34:l5:sNAME2:sv10:sDIMENSION7:sL1 T-130:l5:sNAME2:sx10:sDIMENSION3:sL145:l5:sNAME2:sz10:sDIMENSION3:sL15:sROLE6:sINPUT174:l9:sCONSTANT158:l36:l5:sNAME4:sk_s10:sDIMENSION7:sM1 T-230:l5:sNAME2:sm10:sDIMENSION3:sM182:l5:sNAME6:sx_max10:sDIMENSION3:sL16:sVALUE5:s5e-25:sUNIT2:sm12:sUNCERTAINTY5:s1e-3266:l4:sLAW255:l80:l5:sNAME7:sFREE_Z10:sSTATEMENT12:sd2z/dt2 = 05:sREFS5:l2:sz5:sROLE11:sCONSTRAINT74:l5:sNAME4:sKIN10:sSTATEMENT10:sdx/dt = v5:sREFS9:l2:sv2:sx5:sROLE7:sEOM(x)91:l5:sNAME3:sN210:sSTATEMENT17:sm dv/dt = -k_s x5:sREFS19:l4:sk_s2:sm2:sv2:sx5:sROLE7:sEOM(v)122:l11:sASSUMPTION103:l99:l5:sNAME6:sA_lin12:sPROPOSITION51:sthe restoring force is linear in x (Hooke r\u00e9gime)5:sREFS5:l2:sx132:l11:sCONSTRAINT113:l108:l5:sNAME6:sC_NOZ7:sTARGET2:sz7:sACTION4:sFIX10:sSTATEMENT25:smotion confined to z = 06:sVALUE2:s05:sUNIT2:sm88:l9:sBOUNDARY73:l69:l5:sNAME8:sB_small10:sPREDICATE12:s|x| < x_max5:sREFS13:l2:sx6:sx_max"
},
{
"id": "decode/t1-tpk-list",
"fn": "t1_well_formed",
"input": {
"tpk": []
},
"note": "a JSON [] is not a TPK (it read as an empty TPK and passed T1)",
"expect": "[false,[TPK: zone is not an object]]"
},
{
"id": "decode/t1-tpk-empty-object",
"fn": "t1_well_formed",
"input": {
"tpk": {}
},
"note": "a JSON {} is the empty TPK: every kind absent",
"expect": "[true,[]]"
},
{
"id": "decode/t1-kind-object",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": {}
}
},
"expect": "[false,[TPK kind DOF is not a list]]"
},
{
"id": "decode/t1-kind-zero-keyed",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": {
"0": {
"NAME": "x",
"DIMENSION": "L1"
}
}
}
},
"note": "an object keyed 0 is not a list",
"expect": "[false,[TPK kind DOF is not a list]]"
},
{
"id": "decode/t1-entry-list",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
[]
]
}
},
"expect": "[false,[TPK kind DOF: entry is not an object]]"
},
{
"id": "decode/t1-entry-empty-object",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{}
]
}
},
"expect": "[false,[DOF:?: missing field DIMENSION,DOF:?: missing field NAME]]"
},
{
"id": "decode/t1-parameters-list",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": []
}
},
"expect": "[false,[TPK: PARAMETERS is not an object]]"
},
{
"id": "decode/t1-parameters-empty-object",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {}
}
},
"note": "an empty PARAMETERS part is valid: D_VARIABLES is optional",
"expect": "[true,[]]"
},
{
"id": "decode/t1-parameters-zero-keyed",
"fn": "t1_well_formed",
"input": {
"tpk": {
"PARAMETERS": {
"0": "ONE"
}
}
},
"expect": "[false,[TPK PARAMETERS: unknown field 0]]"
},
{
"id": "decode/t1-unknown-kind-zero",
"fn": "t1_well_formed",
"input": {
"tpk": {
"0": [],
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "a key 0 beside named keys; the name is echoed as written",
"expect": "[false,[TPK: unknown kind 0]]"
},
{
"id": "decode/t1-refs-object",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
],
"LAW": [
{
"NAME": "L",
"STATEMENT": "x is free",
"REFS": {},
"ROLE": "DEFINITION"
}
]
}
},
"note": "REFS {} is not a list of names",
"expect": "[false,[LAW:L: field REFS has the wrong type]]"
},
{
"id": "decode/t1-refs-zero-keyed",
"fn": "t1_well_formed",
"input": {
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
],
"LAW": [
{
"NAME": "L",
"STATEMENT": "x is free",
"REFS": {
"0": "x"
},
"ROLE": "DEFINITION"
}
]
}
},
"expect": "[false,[LAW:L: field REFS has the wrong type]]"
},
{
"id": "decode/trm-list",
"fn": "trm_well_formed",
"input": {
"trm": [],
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[TrM: zone is not an object]]"
},
{
"id": "decode/trm-header-list",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": [],
"ENTRIES": []
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[TrM: HEADER is not an object]]"
},
{
"id": "decode/trm-header-empty-object",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {},
"ENTRIES": []
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[TrM HEADER: missing part ENVIRONMENT_INVENTORY,TrM HEADER: missing part SIGNATURE,TrM HEADER: missing part TRANSFORMATIONS]]"
},
{
"id": "decode/trm-entries-object",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [],
"SIGNATURE": [],
"TRANSFORMATIONS": []
},
"ENTRIES": {}
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[TrM ENTRIES is not a list]]"
},
{
"id": "decode/trm-inventory-zero-keyed",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": {
"0": {
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
}
},
"SIGNATURE": [],
"TRANSFORMATIONS": []
},
"ENTRIES": []
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[TrM ENVIRONMENT_INVENTORY is not a list]]"
},
{
"id": "decode/trm-over-object",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [],
"SIGNATURE": [
{
"NAME": "s",
"OVER": {},
"IMAGE": "i"
}
],
"TRANSFORMATIONS": []
},
"ENTRIES": []
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"expect": "[false,[SIGNATURE:s: field OVER has the wrong type]]"
},
{
"id": "decode/trm-valid-x",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
}
],
"SIGNATURE": [],
"TRANSFORMATIONS": []
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the position",
"FALSIFIER": "a measured position off x",
"FALSIFIER_CLASS": "F2",
"BEARS": [],
"DIMENSION": "L1"
}
]
},
"tpk": {
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"note": "the one-entry TrM the next case reads against a TPK whose DOF kind is not a list",
"expect": "[true,[]]"
},
{
"id": "decode/trm-tpk-kind-zero-keyed",
"fn": "trm_well_formed",
"input": {
"trm": {
"HEADER": {
"ENVIRONMENT_INVENTORY": [
{
"ENVIRONMENT_QUANTITY": "position",
"DIMENSION": "L1"
}
],
"SIGNATURE": [],
"TRANSFORMATIONS": []
},
"ENTRIES": [
{
"NAME": "E_x",
"DOF": "x",
"DOMAIN": "always",
"ENVIRONMENT_QUANTITY": "position",
"IDENTIFICATION": "x is the position",
"FALSIFIER": "a measured position off x",
"FALSIFIER_CLASS": "F2",
"BEARS": [],
"DIMENSION": "L1"
}
]
},
"tpk": {
"DOF": {
"0": {
"NAME": "x",
"DIMENSION": "L1"
}
}
}
},
"note": "the TPK's DOF kind is not a list, so the TPK declares no DOF (it read as the list [x])",
"expect": "[false,[ENTRY:E_x: DOF x is not a TPK DOF]]"
},
{
"id": "decode/tms-valid-minimal",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
}
}
},
"expect": "[true,[]]"
},
{
"id": "decode/tms-list",
"fn": "tms_well_formed",
"input": {
"tms": []
},
"expect": "[false,[TMS: zone is not an object]]"
},
{
"id": "decode/tms-parameters-list",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": []
}
},
"expect": "[false,[TMS: PARAMETERS is not an object]]"
},
{
"id": "decode/tms-parameters-empty-object",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {}
}
},
"expect": "[false,[PARAMETERS: missing field K,PARAMETERS: missing field N_X,PARAMETERS: missing field STEP_CONVENTION,PARAMETERS: missing field S_MAX]]"
},
{
"id": "decode/tms-parameters-zero-keyed",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"0": "x"
}
}
},
"expect": "[false,[PARAMETERS: missing field K,PARAMETERS: missing field N_X,PARAMETERS: missing field STEP_CONVENTION,PARAMETERS: missing field S_MAX,PARAMETERS: unknown field 0]]"
},
{
"id": "decode/tms-yardsticks-object",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": {}
}
},
"note": "it read as no yardstick and passed",
"expect": "[false,[TMS YARDSTICKS is not a list]]"
},
{
"id": "decode/tms-constants-zero-keyed",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"CONSTANTS": {
"0": {
"NAME": "w",
"VALUE": "1"
}
}
}
},
"expect": "[false,[TMS CONSTANTS is not a list]]"
},
{
"id": "decode/tms-yardstick-valid",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": [
{
"NAME": "y",
"KEY": [
"SR1"
],
"LIMITING": []
}
]
}
},
"expect": "[true,[]]"
},
{
"id": "decode/tms-limiting-object",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": [
{
"NAME": "y",
"KEY": [
"SR1"
],
"LIMITING": {}
}
]
}
},
"expect": "[false,[YARDSTICK:y: field LIMITING has the wrong type]]"
},
{
"id": "decode/tms-limiting-entry-list",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": [
{
"NAME": "y",
"KEY": [
"SR1"
],
"LIMITING": [
[]
]
}
]
}
},
"note": "a limiting case [] is not an object",
"expect": "[false,[YARDSTICK:y: field LIMITING has the wrong type]]"
},
{
"id": "decode/tms-limiting-entry-empty-object",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": [
{
"NAME": "y",
"KEY": [
"SR1"
],
"LIMITING": [
{}
]
}
]
}
},
"expect": "[false,[YARDSTICK:y LIMITING ?: missing field DOMAIN,YARDSTICK:y LIMITING ?: missing field KEY]]"
},
{
"id": "decode/tms-key-object",
"fn": "tms_well_formed",
"input": {
"tms": {
"PARAMETERS": {
"STEP_CONVENTION": "x",
"K": "2",
"N_X": 2,
"S_MAX": 1
},
"YARDSTICKS": [
{
"NAME": "y",
"KEY": {},
"LIMITING": []
}
]
}
},
"expect": "[false,[YARDSTICK:y: field KEY has the wrong type]]"
},
{
"id": "decode/digest-tpk-parameters-empty-object",
"fn": "d_tpk",
"input": {
"tpk": {
"PARAMETERS": {},
"DOF": [
{
"NAME": "x",
"DIMENSION": "L1"
}
]
}
},
"preimage": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE44:l4:sDOF34:l30:l5:sNAME2:sx10:sDIMENSION3:sL115:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l",
"note": "a valid empty PARAMETERS object digests as the hand-built minimal TPK",
"expect": "6851d16e1532b08843089d65cc7b20376756839c3d5f309351c52e8a585079ca"
},
{
"id": "decode/preimage-tpk-empty-object",
"fn": "zone_preimage",
"input": {
"zone": "TPK",
"value": {}
},
"note": "the empty TPK: PARAMETERS serialized with D_VARIABLES ONE and six empty kinds (hand-built)",
"expect": "l4:sTPK6:s0.5.040:l11:sPARAMETERS22:l12:sD_VARIABLES4:sONE10:l4:sDOF1:l15:l9:sCONSTANT1:l10:l4:sLAW1:l18:l11:sASSUMPTION1:l18:l11:sCONSTRAINT1:l15:l9:sBOUNDARY1:l"
}
]
}