occam-verify-cli 1.0.192 → 1.0.199
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.
- package/lib/context/file.js +3 -3
- package/lib/dom/assertion/contained.js +12 -24
- package/lib/dom/assertion/defined.js +9 -21
- package/lib/dom/assertion/property.js +7 -7
- package/lib/dom/assertion/satisfies.js +6 -8
- package/lib/dom/declaration/complexType.js +3 -3
- package/lib/dom/declaration/constructor.js +6 -6
- package/lib/dom/declaration/variable.js +6 -6
- package/lib/dom/declaration.js +13 -13
- package/lib/dom/frame.js +7 -7
- package/lib/dom/judgement.js +7 -7
- package/lib/dom/propertyRelation.js +7 -7
- package/lib/dom/term.js +1 -3
- package/lib/dom/topLevelMetaAssertion.js +77 -131
- package/lib/dom/type.js +2 -2
- package/lib/equivalence.js +4 -6
- package/lib/mixins/term/verify.js +4 -8
- package/lib/node/argument.js +116 -0
- package/lib/node/assertion/contained.js +31 -23
- package/lib/node/assertion/defined.js +30 -17
- package/lib/node/assertion/property.js +14 -19
- package/lib/node/assertion/satisfies.js +20 -13
- package/lib/node/assertion/subproof.js +11 -11
- package/lib/node/assertion/type.js +12 -17
- package/lib/node/combinator.js +9 -4
- package/lib/node/conclusion.js +11 -11
- package/lib/node/constructor.js +9 -4
- package/lib/node/declaration/combinator.js +11 -11
- package/lib/node/declaration/complexType.js +38 -34
- package/lib/node/declaration/constructor.js +24 -29
- package/lib/node/declaration/metavariable.js +12 -17
- package/lib/node/declaration/property.js +19 -24
- package/lib/node/declaration/type.js +41 -28
- package/lib/node/declaration/variable.js +12 -17
- package/lib/node/declaration.js +12 -17
- package/lib/node/deduction.js +11 -11
- package/lib/node/derivation.js +39 -11
- package/lib/node/equality.js +21 -18
- package/lib/node/error.js +9 -4
- package/lib/node/frame.js +13 -30
- package/lib/node/judgement.js +13 -18
- package/lib/node/label.js +11 -11
- package/lib/node/labels.js +11 -11
- package/lib/node/metaArgument.js +116 -0
- package/lib/node/metaType.js +9 -8
- package/lib/node/metavariable.js +12 -17
- package/lib/node/nonTerminal.js +218 -0
- package/lib/node/parameter.js +9 -4
- package/lib/node/parenthesisedLabel.js +116 -0
- package/lib/node/parenthesisedLabels.js +11 -11
- package/lib/node/premise.js +12 -17
- package/lib/node/procedureCall.js +12 -17
- package/lib/node/proof.js +11 -11
- package/lib/node/property.js +9 -4
- package/lib/node/propertyRelation.js +12 -17
- package/lib/node/reference.js +11 -11
- package/lib/node/rule.js +44 -7
- package/lib/node/statement.js +92 -53
- package/lib/node/step.js +12 -17
- package/lib/node/subDerivation.js +46 -11
- package/lib/node/subproof.js +19 -17
- package/lib/node/substitution/frame.js +123 -0
- package/lib/node/substitution/reference.js +123 -0
- package/lib/node/substitution/statement.js +123 -0
- package/lib/node/substitution/term.js +123 -0
- package/lib/node/supposition.js +12 -17
- package/lib/node/term.js +22 -33
- package/lib/node/topLevelAssertion.js +14 -29
- package/lib/node/topLevelMetaAssertion.js +26 -41
- package/lib/node/type.js +9 -4
- package/lib/node/types.js +116 -0
- package/lib/node/variable.js +9 -4
- package/lib/nonTerminalNodeMap.js +11 -3
- package/lib/ruleNames.js +33 -1
- package/lib/substitution/frame.js +5 -7
- package/lib/substitution/reference.js +5 -7
- package/lib/substitution/term.js +5 -7
- package/lib/unifier/metaLevel.js +4 -4
- package/lib/utilities/brackets.js +5 -5
- package/lib/utilities/json.js +18 -1
- package/lib/utilities/node.js +1 -313
- package/lib/utilities/subproof.js +13 -4
- package/package.json +1 -1
- package/src/context/file.js +2 -2
- package/src/dom/assertion/contained.js +12 -34
- package/src/dom/assertion/defined.js +9 -30
- package/src/dom/assertion/property.js +6 -8
- package/src/dom/assertion/satisfies.js +5 -10
- package/src/dom/declaration/complexType.js +2 -2
- package/src/dom/declaration/constructor.js +6 -7
- package/src/dom/declaration/variable.js +6 -7
- package/src/dom/declaration.js +11 -15
- package/src/dom/frame.js +4 -6
- package/src/dom/judgement.js +6 -8
- package/src/dom/propertyRelation.js +6 -8
- package/src/dom/term.js +0 -3
- package/src/dom/topLevelMetaAssertion.js +83 -39
- package/src/dom/type.js +2 -2
- package/src/equivalence.js +3 -6
- package/src/mixins/term/verify.js +5 -11
- package/src/node/argument.js +16 -0
- package/src/node/assertion/contained.js +30 -22
- package/src/node/assertion/defined.js +28 -15
- package/src/node/assertion/property.js +7 -17
- package/src/node/assertion/satisfies.js +11 -9
- package/src/node/assertion/subproof.js +4 -9
- package/src/node/assertion/type.js +6 -16
- package/src/node/combinator.js +1 -1
- package/src/node/conclusion.js +4 -9
- package/src/node/constructor.js +1 -1
- package/src/node/declaration/combinator.js +4 -9
- package/src/node/declaration/complexType.js +31 -35
- package/src/node/declaration/constructor.js +16 -26
- package/src/node/declaration/metavariable.js +6 -16
- package/src/node/declaration/property.js +13 -23
- package/src/node/declaration/type.js +35 -29
- package/src/node/declaration/variable.js +6 -16
- package/src/node/declaration.js +6 -16
- package/src/node/deduction.js +4 -9
- package/src/node/derivation.js +7 -10
- package/src/node/equality.js +19 -18
- package/src/node/error.js +1 -1
- package/src/node/frame.js +8 -35
- package/src/node/judgement.js +7 -17
- package/src/node/label.js +4 -9
- package/src/node/labels.js +4 -9
- package/src/node/metaArgument.js +16 -0
- package/src/node/metaType.js +1 -5
- package/src/node/metavariable.js +6 -16
- package/src/node/nonTerminal.js +130 -0
- package/src/node/parameter.js +1 -1
- package/src/node/parenthesisedLabel.js +16 -0
- package/src/node/parenthesisedLabels.js +5 -10
- package/src/node/premise.js +6 -16
- package/src/node/procedureCall.js +6 -16
- package/src/node/proof.js +4 -9
- package/src/node/property.js +1 -1
- package/src/node/propertyRelation.js +7 -16
- package/src/node/reference.js +4 -9
- package/src/node/rule.js +40 -3
- package/src/node/statement.js +109 -66
- package/src/node/step.js +6 -16
- package/src/node/subDerivation.js +14 -10
- package/src/node/subproof.js +13 -16
- package/src/node/substitution/frame.js +23 -0
- package/src/node/substitution/reference.js +23 -0
- package/src/node/substitution/statement.js +23 -0
- package/src/node/substitution/term.js +23 -0
- package/src/node/supposition.js +6 -16
- package/src/node/term.js +15 -39
- package/src/node/topLevelAssertion.js +13 -33
- package/src/node/topLevelMetaAssertion.js +20 -39
- package/src/node/type.js +1 -1
- package/src/node/types.js +16 -0
- package/src/node/variable.js +1 -1
- package/src/nonTerminalNodeMap.js +60 -36
- package/src/ruleNames.js +8 -0
- package/src/substitution/frame.js +7 -10
- package/src/substitution/reference.js +7 -10
- package/src/substitution/term.js +7 -9
- package/src/unifier/metaLevel.js +2 -3
- package/src/utilities/brackets.js +8 -8
- package/src/utilities/json.js +19 -0
- package/src/utilities/node.js +0 -168
- package/src/utilities/subproof.js +22 -6
package/src/substitution/term.js
CHANGED
|
@@ -4,14 +4,9 @@ import dom from "../dom";
|
|
|
4
4
|
import Substitution from "../substitution";
|
|
5
5
|
import TermSubstitutionPartialContext from "../context/partial/substitution/term";
|
|
6
6
|
|
|
7
|
-
import { nodeQuery } from "../utilities/query";
|
|
8
7
|
import { stripBracketsFromTerm } from "../utilities/brackets";
|
|
9
8
|
import { stripBracketsFromTermNode } from "../utilities/brackets";
|
|
10
9
|
|
|
11
|
-
const termNodeQuery = nodeQuery("/termSubstitution/term[0]"),
|
|
12
|
-
variableNodeQuery = nodeQuery("/termSubstitution/term[1]/variable!"),
|
|
13
|
-
termSubstitutionNodeQuery = nodeQuery("/statement/termSubstitution");
|
|
14
|
-
|
|
15
10
|
export default class TermSubstitution extends Substitution {
|
|
16
11
|
constructor(string, node, tokens, term, variable) {
|
|
17
12
|
super(string, node, tokens);
|
|
@@ -68,14 +63,17 @@ export default class TermSubstitution extends Substitution {
|
|
|
68
63
|
static fromStatementNode(statementNode, context) {
|
|
69
64
|
let termSubstitution = null;
|
|
70
65
|
|
|
71
|
-
const termSubstitutionNode =
|
|
66
|
+
const termSubstitutionNode = statementNode.getTermSubstitutionNode();
|
|
72
67
|
|
|
73
68
|
if (termSubstitutionNode !== null) {
|
|
74
|
-
const
|
|
75
|
-
|
|
69
|
+
const lastTermNode = termSubstitutionNode.getLastTermNode(),
|
|
70
|
+
firstTermNode = termSubstitutionNode.getFirstTermNode(),
|
|
71
|
+
singularVariableNode = lastTermNode.getSingularVariableNode(lastTermNode);
|
|
76
72
|
|
|
77
|
-
if (
|
|
73
|
+
if (singularVariableNode !== null) {
|
|
78
74
|
const { Term, Variable } = dom,
|
|
75
|
+
termNode = firstTermNode, ///
|
|
76
|
+
variableNode = singularVariableNode, ///
|
|
79
77
|
term = Term.fromTermNode(termNode, context),
|
|
80
78
|
variable = Variable.fromVariableNode(variableNode, context),
|
|
81
79
|
node = termSubstitutionNode, ///
|
package/src/unifier/metaLevel.js
CHANGED
|
@@ -12,7 +12,6 @@ const termNodeQuery = nodeQuery("/term"),
|
|
|
12
12
|
statementNodeQuery = nodeQuery("/statement"),
|
|
13
13
|
termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
14
14
|
frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
|
|
15
|
-
statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!"),
|
|
16
15
|
declarationMetavariableNodeQuery = nodeQuery("/declaration/metavariable!");
|
|
17
16
|
|
|
18
17
|
class MetaLevelUnifier extends Unifier {
|
|
@@ -34,9 +33,9 @@ class MetaLevelUnifier extends Unifier {
|
|
|
34
33
|
let statementUnified;
|
|
35
34
|
|
|
36
35
|
const statementNode = generalStatementNode, ///
|
|
37
|
-
|
|
36
|
+
singularMetavariableNode = statementNode.getSingularMetavariableNode();
|
|
38
37
|
|
|
39
|
-
if (
|
|
38
|
+
if (singularMetavariableNode !== null) {
|
|
40
39
|
const { Metavariable, Statement } = dom; ///
|
|
41
40
|
|
|
42
41
|
let context,
|
|
@@ -5,12 +5,8 @@ import LocalContext from "../context/local";
|
|
|
5
5
|
import combinatorBracketedContext from "../context/bracketed/combinator";
|
|
6
6
|
import constructorBracketedContext from "../context/bracketed/constructor";
|
|
7
7
|
|
|
8
|
-
import { nodeQuery } from "../utilities/query";
|
|
9
8
|
import { BRACKETED_TERM_DEPTH, BRACKETED_STATEMENT_DEPTH } from "../constants";
|
|
10
9
|
|
|
11
|
-
const bracketedTermChildNodeQuery = nodeQuery("/term/argument/term"),
|
|
12
|
-
bracketedStatementChildNodeQuery = nodeQuery("/statement/metaArgument/statement");
|
|
13
|
-
|
|
14
10
|
export function stripBracketsFromTerm(term, context) {
|
|
15
11
|
const termNode = term.getNode(),
|
|
16
12
|
bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
@@ -69,7 +65,9 @@ export function bracketedTermChildNodeFromTermNode(termNode) {
|
|
|
69
65
|
termNodeMatchBracketedTermNode = termNode.match(bracketedTermNode, depth);
|
|
70
66
|
|
|
71
67
|
if (termNodeMatchBracketedTermNode) {
|
|
72
|
-
|
|
68
|
+
const singularTermNode = termNode.getSingularTermNode();
|
|
69
|
+
|
|
70
|
+
bracketedTermChildNode = singularTermNode; ///
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
return bracketedTermChildNode;
|
|
@@ -83,7 +81,9 @@ export function bracketedStatementChildNodeFromStatementNode(statementNode) {
|
|
|
83
81
|
statementNodeMatchBracketedStatementNode = statementNode.match(bracketedStatementNode, depth);
|
|
84
82
|
|
|
85
83
|
if (statementNodeMatchBracketedStatementNode) {
|
|
86
|
-
|
|
84
|
+
const singularStatementNode = statementNode.getSingularStatementNode();
|
|
85
|
+
|
|
86
|
+
bracketedStatementChildNode = singularStatementNode; ///
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
return bracketedStatementChildNode;
|
|
@@ -91,8 +91,8 @@ export function bracketedStatementChildNodeFromStatementNode(statementNode) {
|
|
|
91
91
|
|
|
92
92
|
function contextFromStatement(statement, context) {
|
|
93
93
|
const statementTokens = statement.getTokens(),
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
tokens = statementTokens, ///
|
|
95
|
+
localContext = LocalContext.fromContextAndTokens(context, tokens);
|
|
96
96
|
|
|
97
97
|
context = localContext; ///
|
|
98
98
|
|
package/src/utilities/json.js
CHANGED
|
@@ -160,6 +160,19 @@ export function rulesFromJSON(json, fileContext) {
|
|
|
160
160
|
return rules;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
export function labelFromJSON(json, fileContext) {
|
|
164
|
+
let { label } = json;
|
|
165
|
+
|
|
166
|
+
const { Label } = dom,
|
|
167
|
+
labelJSON = label; ///
|
|
168
|
+
|
|
169
|
+
json = labelJSON; ///
|
|
170
|
+
|
|
171
|
+
label = Label.fromJSON(json, fileContext);
|
|
172
|
+
|
|
173
|
+
return label;
|
|
174
|
+
}
|
|
175
|
+
|
|
163
176
|
export function labelsFromJSON(json, fileContext) {
|
|
164
177
|
let { labels } = json;
|
|
165
178
|
|
|
@@ -425,6 +438,12 @@ export function typeToTypeJSON(type) {
|
|
|
425
438
|
return typeJSON;
|
|
426
439
|
}
|
|
427
440
|
|
|
441
|
+
export function labelToLabelJSON(label) {
|
|
442
|
+
const labelJSON = label.toJSON();
|
|
443
|
+
|
|
444
|
+
return labelJSON;
|
|
445
|
+
}
|
|
446
|
+
|
|
428
447
|
export function metaTypeToMetaTypeJSON(metaType) {
|
|
429
448
|
const metaTypeJSON = (metaType !== null) ?
|
|
430
449
|
metaType.toJSON() :
|
package/src/utilities/node.js
CHANGED
|
@@ -3,156 +3,6 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
|
|
5
5
|
import { objectType } from "../dom/type";
|
|
6
|
-
import { RULE_RULE_NAME,
|
|
7
|
-
STEP_RULE_NAME,
|
|
8
|
-
TERM_RULE_NAME,
|
|
9
|
-
TYPE_RULE_NAME,
|
|
10
|
-
LEMMA_RULE_NAME,
|
|
11
|
-
AXIOM_RULE_NAME,
|
|
12
|
-
ERROR_RULE_NAME,
|
|
13
|
-
FRAME_RULE_NAME,
|
|
14
|
-
PROOF_RULE_NAME,
|
|
15
|
-
LABEL_RULE_NAME,
|
|
16
|
-
LABELS_RULE_NAME,
|
|
17
|
-
THEOREM_RULE_NAME,
|
|
18
|
-
PREMISE_RULE_NAME,
|
|
19
|
-
PROPERTY_RULE_NAME,
|
|
20
|
-
EQUALITY_RULE_NAME,
|
|
21
|
-
VARIABLE_RULE_NAME,
|
|
22
|
-
SUBPROOF_RULE_NAME,
|
|
23
|
-
META_TYPE_RULE_NAME,
|
|
24
|
-
PARAMETER_RULE_NAME,
|
|
25
|
-
DEDUCTION_RULE_NAME,
|
|
26
|
-
JUDGEMENT_RULE_NAME,
|
|
27
|
-
REFERENCE_RULE_NAME,
|
|
28
|
-
STATEMENT_RULE_NAME,
|
|
29
|
-
META_LEMMA_RULE_NAME,
|
|
30
|
-
COMBINATOR_RULE_NAME,
|
|
31
|
-
CONCLUSION_RULE_NAME,
|
|
32
|
-
CONJECTURE_RULE_NAME,
|
|
33
|
-
DERIVATION_RULE_NAME,
|
|
34
|
-
SUPPOSITION_RULE_NAME,
|
|
35
|
-
CONSTRUCTOR_RULE_NAME,
|
|
36
|
-
DECLARATION_RULE_NAME,
|
|
37
|
-
METATHEOREM_RULE_NAME,
|
|
38
|
-
METAVARIABLE_RULE_NAME,
|
|
39
|
-
PROCEDURE_CALL_RULE_NAME,
|
|
40
|
-
SUB_DERIVATION_RULE_NAME,
|
|
41
|
-
TYPE_ASSERTION_RULE_NAME,
|
|
42
|
-
TYPE_DECLARATION_RULE_NAME,
|
|
43
|
-
PROPERTY_RELATION_RULE_NAME,
|
|
44
|
-
DEFINED_ASSERTION_RULE_NAME,
|
|
45
|
-
PROPERTY_ASSERTION_RULE_NAME,
|
|
46
|
-
SUBPROOF_ASSERTION_RULE_NAME,
|
|
47
|
-
CONTAINED_ASSERTION_RULE_NAME,
|
|
48
|
-
SATISFIES_ASSERTION_RULE_NAME,
|
|
49
|
-
PROPERTY_DECLARATION_RULE_NAME,
|
|
50
|
-
VARIABLE_DECLARATION_RULE_NAME,
|
|
51
|
-
PARENTHESISED_LABELS_RULE_NAME,
|
|
52
|
-
COMBINATOR_DECLARATION_RULE_NAME,
|
|
53
|
-
CONSTRUCTOR_DECLARATION_RULE_NAME,
|
|
54
|
-
COMPLEX_TYPE_DECLARATION_RULE_NAME,
|
|
55
|
-
METAVARIABLE_DECLARATION_RULE_NAME } from "../ruleNames";
|
|
56
|
-
|
|
57
|
-
export function isNodeRuleNode(node) { return isNodeRuleNodeByRuleName(node, RULE_RULE_NAME); }
|
|
58
|
-
|
|
59
|
-
export function isNodeStepNode(node) { return isNodeRuleNodeByRuleName(node, STEP_RULE_NAME); }
|
|
60
|
-
|
|
61
|
-
export function isNodeTermNode(node) { return isNodeRuleNodeByRuleName(node, TERM_RULE_NAME); }
|
|
62
|
-
|
|
63
|
-
export function isNodeTypeNode(node) { return isNodeRuleNodeByRuleName(node, TYPE_RULE_NAME); }
|
|
64
|
-
|
|
65
|
-
export function isNodeLemmaNode(node) { return isNodeRuleNodeByRuleName(node, LEMMA_RULE_NAME); }
|
|
66
|
-
|
|
67
|
-
export function isNodeAxiomNode(node) { return isNodeRuleNodeByRuleName(node, AXIOM_RULE_NAME); }
|
|
68
|
-
|
|
69
|
-
export function isNodeErrorNode(node) { return isNodeRuleNodeByRuleName(node, ERROR_RULE_NAME); }
|
|
70
|
-
|
|
71
|
-
export function isNodeFrameNode(node) { return isNodeRuleNodeByRuleName(node, FRAME_RULE_NAME); }
|
|
72
|
-
|
|
73
|
-
export function isNodeProofNode(node) { return isNodeRuleNodeByRuleName(node, PROOF_RULE_NAME); }
|
|
74
|
-
|
|
75
|
-
export function isNodeLabelNode(node) { return isNodeRuleNodeByRuleName(node, LABEL_RULE_NAME); }
|
|
76
|
-
|
|
77
|
-
export function isNodeLabelsNode(node) { return isNodeRuleNodeByRuleName(node, LABELS_RULE_NAME); }
|
|
78
|
-
|
|
79
|
-
export function isNodeTheoremNode(node) { return isNodeRuleNodeByRuleName(node, THEOREM_RULE_NAME); }
|
|
80
|
-
|
|
81
|
-
export function isNodePremiseNode(node) { return isNodeRuleNodeByRuleName(node, PREMISE_RULE_NAME); }
|
|
82
|
-
|
|
83
|
-
export function isNodePropertyNode(node) { return isNodeRuleNodeByRuleName(node, PROPERTY_RULE_NAME); }
|
|
84
|
-
|
|
85
|
-
export function isNodeEqualityNode(node) { return isNodeRuleNodeByRuleName(node, EQUALITY_RULE_NAME); }
|
|
86
|
-
|
|
87
|
-
export function isNodeVariableNode(node) { return isNodeRuleNodeByRuleName(node, VARIABLE_RULE_NAME); }
|
|
88
|
-
|
|
89
|
-
export function isNodeSubproofNode(node) { return isNodeRuleNodeByRuleName(node, SUBPROOF_RULE_NAME); }
|
|
90
|
-
|
|
91
|
-
export function isNodeMetaTypeNode(node) { return isNodeRuleNodeByRuleName(node, META_TYPE_RULE_NAME); }
|
|
92
|
-
|
|
93
|
-
export function isNodeParameterNode(node) { return isNodeRuleNodeByRuleName(node, PARAMETER_RULE_NAME); }
|
|
94
|
-
|
|
95
|
-
export function isNodeDeductionNode(node) { return isNodeRuleNodeByRuleName(node, DEDUCTION_RULE_NAME); }
|
|
96
|
-
|
|
97
|
-
export function isNodeJudgementNode(node) { return isNodeRuleNodeByRuleName(node, JUDGEMENT_RULE_NAME); }
|
|
98
|
-
|
|
99
|
-
export function isNodeReferenceNode(node) { return isNodeRuleNodeByRuleName(node, REFERENCE_RULE_NAME); }
|
|
100
|
-
|
|
101
|
-
export function isNodeStatementNode(node) { return isNodeRuleNodeByRuleName(node, STATEMENT_RULE_NAME); }
|
|
102
|
-
|
|
103
|
-
export function isNodeMetaLemmaNode(node) { return isNodeRuleNodeByRuleName(node, META_LEMMA_RULE_NAME); }
|
|
104
|
-
|
|
105
|
-
export function isNodeCombinatorNode(node) { return isNodeRuleNodeByRuleName(node, COMBINATOR_RULE_NAME); }
|
|
106
|
-
|
|
107
|
-
export function isNodeConclusionNode(node) { return isNodeRuleNodeByRuleName(node, CONCLUSION_RULE_NAME); }
|
|
108
|
-
|
|
109
|
-
export function isNodeConjectureNode(node) { return isNodeRuleNodeByRuleName(node, CONJECTURE_RULE_NAME); }
|
|
110
|
-
|
|
111
|
-
export function isNodeDerivationNode(node) { return isNodeRuleNodeByRuleName(node, DERIVATION_RULE_NAME); }
|
|
112
|
-
|
|
113
|
-
export function isNodeSuppositionNode(node) { return isNodeRuleNodeByRuleName(node, SUPPOSITION_RULE_NAME); }
|
|
114
|
-
|
|
115
|
-
export function isNodeConstructorNode(node) { return isNodeRuleNodeByRuleName(node, CONSTRUCTOR_RULE_NAME); }
|
|
116
|
-
|
|
117
|
-
export function isNodeDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, DECLARATION_RULE_NAME); }
|
|
118
|
-
|
|
119
|
-
export function isNodeMetatheoremNode(node) { return isNodeRuleNodeByRuleName(node, METATHEOREM_RULE_NAME); }
|
|
120
|
-
|
|
121
|
-
export function isNodeMetavariableNode(node) { return isNodeRuleNodeByRuleName(node, METAVARIABLE_RULE_NAME); }
|
|
122
|
-
|
|
123
|
-
export function isNodeProcedureCallNode(node) { return isNodeRuleNodeByRuleName(node, PROCEDURE_CALL_RULE_NAME); }
|
|
124
|
-
|
|
125
|
-
export function isNodeSubDerivationNode(node) { return isNodeRuleNodeByRuleName(node, SUB_DERIVATION_RULE_NAME); }
|
|
126
|
-
|
|
127
|
-
export function isNodeTypeAssertionNode(node) { return isNodeRuleNodeByRuleName(node, TYPE_ASSERTION_RULE_NAME); }
|
|
128
|
-
|
|
129
|
-
export function isNodeTypeDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, TYPE_DECLARATION_RULE_NAME); }
|
|
130
|
-
|
|
131
|
-
export function isNodePropertyRelationNode(node) { return isNodeRuleNodeByRuleName(node, PROPERTY_RELATION_RULE_NAME); }
|
|
132
|
-
|
|
133
|
-
export function isNodeDefinedAssertionNode(node) { return isNodeRuleNodeByRuleName(node, DEFINED_ASSERTION_RULE_NAME); }
|
|
134
|
-
|
|
135
|
-
export function isNodePropertyAssertionNode(node) { return isNodeRuleNodeByRuleName(node, PROPERTY_ASSERTION_RULE_NAME); }
|
|
136
|
-
|
|
137
|
-
export function isNodeSubproofAssertionNode(node) { return isNodeRuleNodeByRuleName(node, SUBPROOF_ASSERTION_RULE_NAME); }
|
|
138
|
-
|
|
139
|
-
export function isNodeContainedAssertionNode(node) { return isNodeRuleNodeByRuleName(node, CONTAINED_ASSERTION_RULE_NAME); }
|
|
140
|
-
|
|
141
|
-
export function isNodeSatisfiesAssertionNode(node) { return isNodeRuleNodeByRuleName(node, SATISFIES_ASSERTION_RULE_NAME); }
|
|
142
|
-
|
|
143
|
-
export function isNodePropertyDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, PROPERTY_DECLARATION_RULE_NAME); }
|
|
144
|
-
|
|
145
|
-
export function isNodeVariableDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, VARIABLE_DECLARATION_RULE_NAME); }
|
|
146
|
-
|
|
147
|
-
export function isNodeParenthesisedLabelsNode(node) { return isNodeRuleNodeByRuleName(node, PARENTHESISED_LABELS_RULE_NAME); }
|
|
148
|
-
|
|
149
|
-
export function isNodeCombinatorDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, COMBINATOR_DECLARATION_RULE_NAME); }
|
|
150
|
-
|
|
151
|
-
export function isNodeConstructorDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, CONSTRUCTOR_DECLARATION_RULE_NAME); }
|
|
152
|
-
|
|
153
|
-
export function isNodeComplexTypeDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, COMPLEX_TYPE_DECLARATION_RULE_NAME); }
|
|
154
|
-
|
|
155
|
-
export function isNodeMetavariableDeclarationNode(node) { return isNodeRuleNodeByRuleName(node, METAVARIABLE_DECLARATION_RULE_NAME); }
|
|
156
6
|
|
|
157
7
|
export function typeFromTypeNode(typeNode) {
|
|
158
8
|
let type;
|
|
@@ -193,21 +43,3 @@ export function statementFromStatementNode(statementNode, context) {
|
|
|
193
43
|
|
|
194
44
|
return statement;
|
|
195
45
|
}
|
|
196
|
-
|
|
197
|
-
function isNodeRuleNodeByRuleName(node, ruleName) {
|
|
198
|
-
let nodeRuleNode = false;
|
|
199
|
-
|
|
200
|
-
const nodeNonTerminalNode = node.isNonTerminalNode();
|
|
201
|
-
|
|
202
|
-
if (nodeNonTerminalNode) {
|
|
203
|
-
const nonTerminalNode = node, ///
|
|
204
|
-
nonTerminalNodeRuleName = nonTerminalNode.getRuleName(),
|
|
205
|
-
nonTerminalNodeRuleNameRuleName = (nonTerminalNodeRuleName === ruleName);
|
|
206
|
-
|
|
207
|
-
if (nonTerminalNodeRuleNameRuleName) {
|
|
208
|
-
nodeRuleNode = true;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
return nodeRuleNode;
|
|
213
|
-
}
|
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { nodeQuery, nodesQuery } from "./query";
|
|
4
3
|
import { nodeAsString, nodesAsString } from "./string";
|
|
5
4
|
|
|
6
|
-
const lastStepStatementNodeQuery = nodeQuery("/subproof/subDerivation/step[-1]/statement"),
|
|
7
|
-
suppositionStatementNodesQuery = nodesQuery("/subproof/supposition/statement");
|
|
8
|
-
|
|
9
5
|
export function subproofStringFromSubproofNode(subproofNode, fileContext) {
|
|
10
6
|
const tokens = fileContext.getTokens(),
|
|
11
|
-
suppositionStatementNodes =
|
|
12
|
-
lastStepStatementNode =
|
|
7
|
+
suppositionStatementNodes = suppositionStatementNodesFromSubproofNode(subproofNode),
|
|
8
|
+
lastStepStatementNode = lastStepStatementNodeFromSubproofNode(subproofNode),
|
|
13
9
|
suppositionStatementsString = nodesAsString(suppositionStatementNodes, tokens),
|
|
14
10
|
lastStepStatementString = nodeAsString(lastStepStatementNode, tokens),
|
|
15
11
|
subproofString = `[${suppositionStatementsString}]...${lastStepStatementString}`;
|
|
16
12
|
|
|
17
13
|
return subproofString;
|
|
18
14
|
}
|
|
15
|
+
|
|
16
|
+
function lastStepStatementNodeFromSubproofNode(subproofNode) {
|
|
17
|
+
const lastStepNode = subproofNode.getLastStepNode(),
|
|
18
|
+
lastStepNodeStatementNode = lastStepNode.getStatementNode(),
|
|
19
|
+
lastStepStatementNode = lastStepNodeStatementNode; ///
|
|
20
|
+
|
|
21
|
+
return lastStepStatementNode;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function suppositionStatementNodesFromSubproofNode(subproofNode) {
|
|
25
|
+
const suppositionNodes = subproofNode.getSuppositionNodes(),
|
|
26
|
+
suppositionNodeStatementNodes = suppositionNodes.map((suppositionNode) => {
|
|
27
|
+
const suppositionNodeStatementNode = suppositionNode.getStatementNode();
|
|
28
|
+
|
|
29
|
+
return suppositionNodeStatementNode;
|
|
30
|
+
}),
|
|
31
|
+
suppositionStatementNodes = suppositionNodeStatementNodes; ///
|
|
32
|
+
|
|
33
|
+
return suppositionStatementNodes;
|
|
34
|
+
}
|