occam-verify-cli 1.0.428 → 1.0.436

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/lib/context/file.js +1 -1
  2. package/lib/element/assertion.js +115 -24
  3. package/lib/element/assumption.js +120 -20
  4. package/lib/element/axiomLemmaTheoremConjecture.js +118 -30
  5. package/lib/element/conclusion.js +113 -25
  6. package/lib/element/declaration.js +112 -37
  7. package/lib/element/deduction.js +112 -66
  8. package/lib/element/derivation.js +114 -5
  9. package/lib/element/equality.js +119 -26
  10. package/lib/element/equivalence.js +121 -28
  11. package/lib/element/equivalences.js +122 -7
  12. package/lib/element/error.js +115 -32
  13. package/lib/element/frame.js +119 -59
  14. package/lib/element/hypothesis.js +115 -27
  15. package/lib/element/judgement.js +120 -33
  16. package/lib/element/label.js +116 -63
  17. package/lib/element/lemma.js +1 -9
  18. package/lib/element/metaLemma.js +1 -8
  19. package/lib/element/metaLemmaMetatheorem.js +117 -29
  20. package/lib/element/metaType.js +68 -61
  21. package/lib/element/metatheorem.js +1 -8
  22. package/lib/element/metavariable.js +122 -93
  23. package/lib/element/parameter.js +120 -20
  24. package/lib/element/premise.js +114 -35
  25. package/lib/element/procedureCall.js +117 -99
  26. package/lib/element/procedureReference.js +120 -20
  27. package/lib/element/proof.js +111 -55
  28. package/lib/element/property.js +121 -35
  29. package/lib/element/propertyRelation.js +116 -72
  30. package/lib/element/reference.js +120 -70
  31. package/lib/element/rule.js +116 -41
  32. package/lib/element/section.js +114 -133
  33. package/lib/element/signature.js +120 -20
  34. package/lib/element/statement/combinator/bracketed.js +4 -9
  35. package/lib/element/statement.js +110 -125
  36. package/lib/element/step.js +115 -27
  37. package/lib/element/subDerivation.js +111 -43
  38. package/lib/element/subproof.js +115 -20
  39. package/lib/element/substitution.js +115 -31
  40. package/lib/element/substitutions.js +120 -6
  41. package/lib/element/supposition.js +114 -35
  42. package/lib/element/term/constructor/bracketed.js +4 -8
  43. package/lib/element/term.js +111 -98
  44. package/lib/element/theorem.js +1 -8
  45. package/lib/element/type.js +71 -91
  46. package/lib/element/typePrefix.js +120 -20
  47. package/lib/element/variable.js +116 -111
  48. package/lib/element.js +67 -0
  49. package/lib/node/{nonsense.js → equivalences.js} +10 -10
  50. package/lib/node/frame.js +11 -5
  51. package/lib/node/procedureReference.js +6 -6
  52. package/lib/node/statement.js +11 -5
  53. package/lib/node/term.js +8 -1
  54. package/lib/nonTerminalNodeMap.js +3 -3
  55. package/lib/process/instantiate.js +8 -39
  56. package/lib/process/verify.js +22 -29
  57. package/lib/ruleNames.js +5 -5
  58. package/lib/utilities/brackets.js +11 -11
  59. package/lib/utilities/element.js +588 -94
  60. package/lib/utilities/instance.js +61 -0
  61. package/lib/utilities/string.js +73 -1
  62. package/package.json +1 -1
  63. package/src/context/file.js +1 -1
  64. package/src/element/assertion.js +4 -16
  65. package/src/element/assumption.js +5 -12
  66. package/src/element/axiomLemmaTheoremConjecture.js +4 -16
  67. package/src/element/conclusion.js +4 -16
  68. package/src/element/declaration.js +4 -16
  69. package/src/element/deduction.js +5 -19
  70. package/src/element/derivation.js +5 -2
  71. package/src/element/equality.js +4 -16
  72. package/src/element/equivalence.js +4 -16
  73. package/src/element/equivalences.js +12 -5
  74. package/src/element/error.js +4 -24
  75. package/src/element/frame.js +5 -56
  76. package/src/element/hypothesis.js +6 -23
  77. package/src/element/judgement.js +5 -30
  78. package/src/element/label.js +8 -19
  79. package/src/element/lemma.js +0 -7
  80. package/src/element/metaLemma.js +0 -7
  81. package/src/element/metaLemmaMetatheorem.js +4 -16
  82. package/src/element/metaType.js +23 -64
  83. package/src/element/metatheorem.js +0 -7
  84. package/src/element/metavariable.js +6 -94
  85. package/src/element/parameter.js +10 -18
  86. package/src/element/premise.js +4 -31
  87. package/src/element/procedureCall.js +5 -77
  88. package/src/element/procedureReference.js +7 -17
  89. package/src/element/proof.js +5 -17
  90. package/src/element/property.js +8 -30
  91. package/src/element/propertyRelation.js +5 -33
  92. package/src/element/reference.js +8 -72
  93. package/src/element/rule.js +4 -41
  94. package/src/element/section.js +4 -129
  95. package/src/element/signature.js +7 -13
  96. package/src/element/statement/combinator/bracketed.js +3 -9
  97. package/src/element/statement.js +3 -126
  98. package/src/element/step.js +4 -16
  99. package/src/element/subDerivation.js +5 -3
  100. package/src/element/subproof.js +5 -12
  101. package/src/element/substitution.js +4 -24
  102. package/src/element/substitutions.js +6 -2
  103. package/src/element/supposition.js +4 -31
  104. package/src/element/term/constructor/bracketed.js +4 -9
  105. package/src/element/term.js +6 -59
  106. package/src/element/theorem.js +0 -7
  107. package/src/element/type.js +9 -104
  108. package/src/element/typePrefix.js +8 -13
  109. package/src/element/variable.js +6 -109
  110. package/src/element.js +29 -0
  111. package/src/node/{nonsense.js → equivalences.js} +2 -2
  112. package/src/node/frame.js +10 -5
  113. package/src/node/procedureReference.js +4 -4
  114. package/src/node/statement.js +10 -5
  115. package/src/node/term.js +7 -0
  116. package/src/nonTerminalNodeMap.js +3 -3
  117. package/src/process/instantiate.js +4 -36
  118. package/src/process/verify.js +42 -47
  119. package/src/ruleNames.js +1 -1
  120. package/src/utilities/brackets.js +13 -13
  121. package/src/utilities/element.js +731 -129
  122. package/src/utilities/instance.js +53 -0
  123. package/src/utilities/string.js +97 -0
@@ -2,28 +2,20 @@
2
2
 
3
3
  import { arrayUtilities } from "necessary";
4
4
 
5
+ import Element from "../element";
5
6
  import elements from "../elements";
6
7
 
7
8
  import { define } from "../elements";
8
9
  import { S, NOTHING } from "../constants";
9
- import { frameFromFrameNode } from "../utilities/element";
10
10
  import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
11
11
 
12
12
  const { first } = arrayUtilities;
13
13
 
14
- export default define(class Frame {
15
- constructor(string, node, assumptions) {
16
- this.string = string;
17
- this.node = node;
18
- this.assumptions = assumptions;
19
- }
20
-
21
- getString() {
22
- return this.string;
23
- }
14
+ export default define(class Frame extends Element {
15
+ constructor(context, string, node, assumptions) {
16
+ super(context, string, node);
24
17
 
25
- getNode() {
26
- return this.node;
18
+ this.assumptions = assumptions;
27
19
  }
28
20
 
29
21
  getAssumptions() {
@@ -74,14 +66,6 @@ export default define(class Frame {
74
66
 
75
67
  isSingular() { return this.node.isSingular(); }
76
68
 
77
- isEqualTo(frame) {
78
- const frameNode = frame.getNode(),
79
- matches = this.node.match(frameNode),
80
- equalTo = matches; ///
81
-
82
- return equalTo;
83
- }
84
-
85
69
  isMetavariableEqualToMetavariable(metavariable, context) {
86
70
  let metavariableEqualToMetavariable;
87
71
 
@@ -314,39 +298,4 @@ export default define(class Frame {
314
298
 
315
299
  return frame;
316
300
  }
317
-
318
- static fromFrameNode(frameNode, context) { return frameFromFrameNode(frameNode, context); }
319
-
320
- static fromJudgementNode(judgementNode, context) {
321
- const frameNode = judgementNode.getFrameNode(),
322
- frame = frameFromFrameNode(frameNode, context);
323
-
324
- return frame;
325
- }
326
-
327
- static fromDefinedAssertionNode(definedAssertionNode, context) {
328
- let frame = null;
329
-
330
- const frameNode = definedAssertionNode.getFrameNode();
331
-
332
- if (frameNode !== null) {
333
- frame = frameFromFrameNode(frameNode, context);
334
- }
335
-
336
- return frame;
337
- }
338
301
  });
339
-
340
- function assumptionsStringFromAssumptions(assumptions) {
341
- const assumptionsString = assumptions.reduce((assumptionsString, assumption) => {
342
- const assumptionString = assumption.getString();
343
-
344
- assumptionsString = (assumptionsString === null) ?
345
- assumptionString :
346
- `${assumptionsString}, ${assumptionString}`;
347
-
348
- return assumptionsString;
349
- }, null);
350
-
351
- return assumptionsString;
352
- }
@@ -1,24 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
  import assignAssignments from "../process/assign";
5
6
 
6
7
  import { define } from "../elements";
7
8
  import { statementFromJSON, statementToStatementJSON } from "../utilities/json";
8
9
 
9
- export default define(class Hypothesis {
10
- constructor(string, node, statement) {
11
- this.string = string;
12
- this.node = node;
13
- this.statement = statement;
14
- }
15
-
16
- getString() {
17
- return this.string;
18
- }
10
+ export default define(class Hypothesis extends Element {
11
+ constructor(context, string, node, statement) {
12
+ super(context, string, node);
19
13
 
20
- getNode() {
21
- return this.node;
14
+ this.statement = statement;
22
15
  }
23
16
 
24
17
  getStatement() {
@@ -107,18 +100,8 @@ export default define(class Hypothesis {
107
100
  }
108
101
 
109
102
  const node = null,
110
- hypothesis = new Hypothesis(string, node, statement);
103
+ hypothesis = new Hypothesis(context, string, node, statement);
111
104
 
112
105
  return hypothesis;
113
106
  }
114
-
115
- static fromHypothesisNode(hypothesisNode, context) {
116
- const { Statement } = elements,
117
- node = hypothesisNode, ///
118
- string = context.nodeAsString(node),
119
- statement = Statement.fromHypothesisNode(hypothesisNode, context),
120
- hypothesis = new Hypothesis(string, node, statement);
121
-
122
- return hypothesis
123
- }
124
107
  });
@@ -1,26 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
 
5
6
  import { define } from "../elements";
6
7
  import { judgementAssignmentFromJudgement } from "../process/assign";
7
8
 
8
- export default define(class Judgement {
9
- constructor(string, node, frame, assumption) {
10
- this.string = string;
11
- this.node = node;
9
+ export default define(class Judgement extends Element {
10
+ constructor(context, string, node, frame, assumption) {
11
+ super(context, string, node);
12
+
12
13
  this.frame = frame;
13
14
  this.assumption = assumption;
14
15
  }
15
16
 
16
- getString() {
17
- return this.string;
18
- }
19
-
20
- getNode() {
21
- return this.node;
22
- }
23
-
24
17
  getFrame() {
25
18
  return this.frame;
26
19
  }
@@ -149,24 +142,6 @@ export default define(class Judgement {
149
142
  }
150
143
 
151
144
  static name = "Judgement";
152
-
153
- static fromStatementNode(statementNode, context) {
154
- let judgement = null;
155
-
156
- const judgementNode = statementNode.getJudgementNode();
157
-
158
- if (judgementNode !== null) {
159
- const { Frame, Assumption } = elements,
160
- node = judgementNode, ///
161
- string = context.nodeAsString(node),
162
- frame = Frame.fromJudgementNode(judgementNode, context),
163
- assumption = Assumption.fromJudgementNode(judgementNode, context);
164
-
165
- judgement = new Judgement(string, node, frame, assumption);
166
- }
167
-
168
- return judgement;
169
- }
170
145
  });
171
146
 
172
147
  function referenceFromMetavariable(metavariable, context) {
@@ -1,26 +1,21 @@
1
1
  "use strict";
2
2
 
3
- import elements from "../elements";
3
+ import Element from "../element";
4
4
 
5
5
  import { define } from "../elements";
6
6
  import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
7
7
 
8
- export default define(class Label {
9
- constructor(context, metavariable) {
10
- this.context = context;
11
- this.metavariable = metavariable;
12
- }
8
+ export default define(class Label extends Element {
9
+ constructor(context, string, node, metavariable) {
10
+ super(context, string, node);
13
11
 
14
- getContext() {
15
- return this.context;
12
+ this.metavariable = metavariable;
16
13
  }
17
14
 
18
15
  getMetavariable() {
19
16
  return this.metavariable;
20
17
  }
21
18
 
22
- getString() { return this.metavariable.getString(); }
23
-
24
19
  getMetavariableName() {
25
20
  const metavariableName = this.metavariable.getName();
26
21
 
@@ -91,15 +86,9 @@ export default define(class Label {
91
86
 
92
87
  static fromJSON(json, context) {
93
88
  const metavariable = metavariableFromJSON(json, context),
94
- label = new Label(context, metavariable);
95
-
96
- return label;
97
- }
98
-
99
- static fromLabelNode(labelNode, context) {
100
- const { Metavariable } = elements,
101
- metavariable = Metavariable.fromLabelNode(labelNode, context),
102
- label = new Label(context, metavariable);
89
+ string = metavariable.getString(),
90
+ node = metavariable.getNode(),
91
+ label = new Label(context, string, node, metavariable);
103
92
 
104
93
  return label;
105
94
  }
@@ -33,11 +33,4 @@ export default define(class Lemma extends AxiomLemmaTheoremConjecture {
33
33
  }
34
34
 
35
35
  static name = "Lemma";
36
-
37
- static fromLemmaNode(lemmaNode, context) {
38
- const node = lemmaNode, ///
39
- lemma = AxiomLemmaTheoremConjecture.fromNode(Lemma, node, context);
40
-
41
- return lemma;
42
- }
43
36
  });
@@ -31,11 +31,4 @@ export default define(class MetaLemma extends MetaLemmaMetatheorem {
31
31
  static name = "MetaLemma";
32
32
 
33
33
  static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(MetaLemma, json, context); }
34
-
35
- static fromMetaLemmaNode(metaLemmaNode, context) {
36
- const node = metaLemmaNode, ///
37
- metaLemma = MetaLemmaMetatheorem.fromNode(MetaLemma, node, context);
38
-
39
- return metaLemma;
40
- }
41
34
  });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
  import LocalContext from "../context/local";
5
6
 
@@ -13,11 +14,10 @@ import { labelFromJSON,
13
14
  suppositionsToSuppositionsJSON,
14
15
  substitutionsToSubstitutionsJSON } from "../utilities/json";
15
16
 
16
- export default class MetaLemmaMetatheorem {
17
+ export default class MetaLemmaMetatheorem extends Element {
17
18
  constructor(context, string, node, label, suppositions, deduction, proof, substitutions) {
18
- this.context = context;
19
- this.string = string;
20
- this.node = node;
19
+ super(context, string, node);
20
+
21
21
  this.label = label;
22
22
  this.suppositions = suppositions;
23
23
  this.deduction = deduction;
@@ -25,18 +25,6 @@ export default class MetaLemmaMetatheorem {
25
25
  this.substitutions = substitutions;
26
26
  }
27
27
 
28
- getContext() {
29
- return this.context;
30
- }
31
-
32
- getNode() {
33
- return this.node;
34
- }
35
-
36
- getString() {
37
- return this.string;
38
- }
39
-
40
28
  getLabel() {
41
29
  return this.label;
42
30
  }
@@ -1,21 +1,15 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
4
+
3
5
  import { define } from "../elements";
4
6
  import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
5
7
 
6
- class MetaType {
7
- constructor(string, node, name) {
8
- this.string = string;
9
- this.node = node;
10
- this.name = name;
11
- }
12
-
13
- getString() {
14
- return this.string;
15
- }
8
+ class MetaType extends Element {
9
+ constructor(context, string, node, name) {
10
+ super(context, string, node);
16
11
 
17
- getNode() {
18
- return this.node;
12
+ this.name = name;
19
13
  }
20
14
 
21
15
  getName() {
@@ -52,34 +46,17 @@ class MetaType {
52
46
 
53
47
  return metaType;
54
48
  }
55
-
56
- static fromMetaTypeNode(metaTypeNode, context) {
57
- const metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
58
-
59
- return metaType;
60
- }
61
-
62
- static fromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
63
- const metaTypeNode = metavariableDeclarationNode.getMetaTypeNode(),
64
- metaType = metaTypeFromMetaTypeNode(metaTypeNode, context);
65
-
66
- return metaType;
67
- }
68
- }
69
-
70
- function metaTypeFromMetaTypeNode(metaTypeNode, context) {
71
- const metaTypeName = metaTypeNode.getMetaTypeName(),
72
- metaType = metaTypeFromMetaTypeName(metaTypeName);
73
-
74
- return metaType;
75
49
  }
76
50
 
77
51
  export default define(MetaType);
78
52
 
79
53
  class FrameMetaType extends MetaType {
80
54
  static fromNothing() {
81
- const name = FRAME_META_TYPE_NAME,
82
- frameMetaType = new FrameMetaType(name);
55
+ const context = null,
56
+ string = null,
57
+ node = null,
58
+ name = FRAME_META_TYPE_NAME,
59
+ frameMetaType = new FrameMetaType(context, string, node, name);
83
60
 
84
61
  return frameMetaType;
85
62
  }
@@ -87,8 +64,11 @@ class FrameMetaType extends MetaType {
87
64
 
88
65
  class ReferenceMetaType extends MetaType {
89
66
  static fromNothing() {
90
- const name = REFERENCE_META_TYPE_NAME,
91
- referenceMetaType = new ReferenceMetaType(name);
67
+ const context = null,
68
+ string = null,
69
+ node = null,
70
+ name = REFERENCE_META_TYPE_NAME,
71
+ referenceMetaType = new ReferenceMetaType(context, string, node, name);
92
72
 
93
73
  return referenceMetaType;
94
74
  }
@@ -96,39 +76,18 @@ class ReferenceMetaType extends MetaType {
96
76
 
97
77
  class StatementMetaType extends MetaType {
98
78
  static fromNothing() {
99
- const name = STATEMENT_META_TYPE_NAME,
100
- statementMetaType = new StatementMetaType(name);
79
+ const context = null,
80
+ string = null,
81
+ node = null,
82
+ name = STATEMENT_META_TYPE_NAME,
83
+ statementMetaType = new StatementMetaType(context, string, node, name);
101
84
 
102
85
  return statementMetaType;
103
86
  }
104
87
  }
105
88
 
106
89
  export const frameMetaType = FrameMetaType.fromNothing();
107
- export const referenceMetaType = ReferenceMetaType.fromNothing();
108
- export const statementMetaType = StatementMetaType.fromNothing();
109
-
110
- function metaTypeFromMetaTypeName(metaTypeName) {
111
- let metaType;
112
-
113
- switch (metaTypeName) {
114
- case FRAME_META_TYPE_NAME: {
115
- metaType = frameMetaType; ///
116
-
117
- break;
118
- }
119
90
 
120
- case REFERENCE_META_TYPE_NAME: {
121
- metaType = referenceMetaType; ///
122
-
123
- break;
124
- }
125
-
126
- case STATEMENT_META_TYPE_NAME: {
127
- metaType = statementMetaType; ///
128
-
129
- break;
130
- }
131
- }
91
+ export const referenceMetaType = ReferenceMetaType.fromNothing();
132
92
 
133
- return metaType;
134
- }
93
+ export const statementMetaType = StatementMetaType.fromNothing();
@@ -31,11 +31,4 @@ export default define(class Metatheorem extends MetaLemmaMetatheorem {
31
31
  static name = "Metatheorem";
32
32
 
33
33
  static fromJSON(json, context) { return MetaLemmaMetatheorem.fromJSON(Metatheorem, json, context); }
34
-
35
- static fromMetatheoremNode(metatheoremNode, context) {
36
- const node = metatheoremNode, ///
37
- metatheorem = MetaLemmaMetatheorem.fromNode(Metatheorem, node, context);
38
-
39
- return metatheorem;
40
- }
41
34
  });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
 
5
6
  import { define } from "../elements";
@@ -9,23 +10,15 @@ import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
9
10
  import { metaTypeFromJSON, metaTypeToMetaTypeJSON } from "../utilities/json";
10
11
  import { unifyMetavariable, unifyMetavariableIntrinsically } from "../process/unify";
11
12
 
12
- export default define(class Metavariable {
13
- constructor(string, node, name, type, metaType) {
14
- this.string = string;
15
- this.node = node;
13
+ export default define(class Metavariable extends Element {
14
+ constructor(context, string, node, name, type, metaType) {
15
+ super(context, string, node);
16
+
16
17
  this.name = name;
17
18
  this.type = type;
18
19
  this.metaType = metaType;
19
20
  }
20
21
 
21
- getString() {
22
- return this.string;
23
- }
24
-
25
- getNode() {
26
- return this.node;
27
- }
28
-
29
22
  getName() {
30
23
  return this.name;
31
24
  }
@@ -62,14 +55,6 @@ export default define(class Metavariable {
62
55
 
63
56
  isMetaTypeEqualTo(metaType) { return this.metaType.isEqualTo(metaType); }
64
57
 
65
- isEqualTo(metavariable) {
66
- const metavariableNode = metavariable.getNode(),
67
- matches = this.node.match(metavariableNode),
68
- equalTo = matches; ///
69
-
70
- return equalTo;
71
- }
72
-
73
58
  verify(context) {
74
59
  let verifies;
75
60
 
@@ -411,80 +396,7 @@ export default define(class Metavariable {
411
396
  node = metavariableNode, ///
412
397
  type = typeFromJSON(json, context),
413
398
  metaType = metaTypeFromJSON(json, context),
414
- metavariable = new Metavariable(string, node, name, type, metaType);
415
-
416
- return metavariable;
417
- }
418
-
419
- static fromLabelNode(labelNode, context) {
420
- const metavariableNode = labelNode.getMetavariableNode(),
421
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
422
-
423
- return metavariable;
424
- }
425
-
426
- static fromFrameNode(frameNode, context) {
427
- let metavariable = null;
428
-
429
- const singularMetavariableNode = frameNode.getSingularMetavariableNode();
430
-
431
- if (singularMetavariableNode !== null) {
432
- const metavariableNode = singularMetavariableNode; ///
433
-
434
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
435
- }
436
-
437
- return metavariable;
438
- }
439
-
440
- static fromReferenceNode(referenceNode, context) {
441
- const metavariableNode = referenceNode.getMetavariableNode(),
442
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
443
-
444
- return metavariable;
445
- }
446
-
447
- static fromStatementNode(statementNode, context) {
448
- let metavariable = null;
449
-
450
- const singularMetavariableNode = statementNode.getSingularMetavariableNode();
451
-
452
- if (singularMetavariableNode !== null) {
453
- const metavariableNode = singularMetavariableNode; ///
454
-
455
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
456
- }
457
-
458
- return metavariable;
459
- }
460
-
461
- static fromAssumptionNode(assumptionNode, context) {
462
- const metavariableNode = assumptionNode.getMetavariableNode(),
463
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
464
-
465
- return metavariable;
466
- }
467
-
468
- static fromMetavariableNode(metavariableNode, context) {
469
- let metavariable = null;
470
-
471
- if (metavariableNode !== null) {
472
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
473
- }
474
-
475
- return metavariable;
476
- }
477
-
478
- static fromMetavariableDeclarationNode(metavariableDeclarationNode, context) {
479
- const { MetaType } = elements,
480
- metavariableNode = metavariableDeclarationNode.getMetavariableNode(),
481
- type = typeFromMetavariableDeclarationNode(metavariableDeclarationNode, context),
482
- metaType = MetaType.fromMetavariableDeclarationNode(metavariableDeclarationNode, context),
483
- metavariable = metavariableFromMetavariableNode(metavariableNode, context);
484
-
485
- metavariable.setType(type);
486
-
487
- metavariable.setMetaType(metaType);
399
+ metavariable = new Metavariable(context, string, node, name, type, metaType);
488
400
 
489
401
  return metavariable;
490
402
  }
@@ -1,22 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
4
+
3
5
  import { define } from "../elements";
4
6
 
5
- export default define(class Parameter {
6
- constructor(name) {
7
+ export default define(class Parameter extends Element {
8
+ constructor(context, string, node, name) {
9
+ super(context, string, node);
10
+
7
11
  this.name = name;
8
12
  }
9
-
13
+
10
14
  getName() {
11
15
  return this.name;
12
16
  }
13
17
 
14
- getString() {
15
- const string = this.name; ///
16
-
17
- return string;
18
- }
19
-
20
18
  findReplacementNode(substitutions) {
21
19
  let replacementNode = null;
22
20
 
@@ -49,15 +47,9 @@ export default define(class Parameter {
49
47
 
50
48
  static fromJSON(json, context) {
51
49
  const { name } = json,
52
- parameter = new Parameter(name);
53
-
54
- return parameter;
55
- }
56
-
57
- static fromParameterNode(parameterNode, context) {
58
- const parameterName = parameterNode.getParameterName(),
59
- name = parameterName, ///
60
- parameter = new Parameter(name);
50
+ string = null,
51
+ node = null,
52
+ parameter = new Parameter(context, string, node, name);
61
53
 
62
54
  return parameter;
63
55
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import Element from "../element";
3
4
  import elements from "../elements";
4
5
  import TemporaryContext from "../context/temporary";
5
6
  import assignAssignments from "../process/assign";
@@ -8,27 +9,14 @@ import { define } from "../elements";
8
9
  import { subproofAssertionFromStatement } from "../utilities/statement";
9
10
  import { termsFromJSON, framesFromJSON, statementFromJSON, procedureCallFromJSON, termsToTermsJSON, framesToFramesJSON, statementToStatementJSON, procedureCallToProcedureCallJSON } from "../utilities/json";
10
11
 
11
- export default define(class Premise {
12
+ export default define(class Premise extends Element {
12
13
  constructor(context, string, node, statement, procedureCall) {
13
- this.context = context;
14
- this.string = string;
15
- this.node = node;
14
+ super(context, string, node);
15
+
16
16
  this.statement = statement;
17
17
  this.procedureCall = procedureCall;
18
18
  }
19
19
 
20
- getContext() {
21
- return this.context;
22
- }
23
-
24
- getString() {
25
- return this.string;
26
- }
27
-
28
- getNode() {
29
- return this.node;
30
- }
31
-
32
20
  getStatement() {
33
21
  return this.statement;
34
22
  }
@@ -277,19 +265,4 @@ export default define(class Premise {
277
265
 
278
266
  return premise;
279
267
  }
280
-
281
- static fromPremiseNode(premiseNode, context) {
282
- const { Statement, ProcedureCall } = elements,
283
- node = premiseNode, ///
284
- string = context.nodeAsString(node),
285
- statement = Statement.fromPremiseNode(premiseNode, context),
286
- procedureCall = ProcedureCall.fromPremiseNode(premiseNode, context),
287
- temporaryContext = null;
288
-
289
- context = temporaryContext; ///
290
-
291
- const premise = new Premise(context, string, node, statement, procedureCall);
292
-
293
- return premise
294
- }
295
268
  });