occam-verify-cli 1.0.396 → 1.0.404
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/assignment/equality.js +2 -2
- package/lib/context/file.js +4 -5
- package/lib/context/local.js +17 -6
- package/lib/context/partial.js +10 -10
- package/lib/context/temporary.js +102 -52
- package/lib/mixins/step/unify.js +5 -6
- package/lib/node/argument.js +4 -4
- package/lib/node/assertion/contained.js +6 -6
- package/lib/node/assertion/defined.js +6 -6
- package/lib/node/assertion/property.js +6 -6
- package/lib/node/assertion/satisfies.js +6 -6
- package/lib/node/assertion/subproof.js +6 -6
- package/lib/node/assertion/type.js +6 -6
- package/lib/node/assertion.js +107 -0
- package/lib/node/assumption.js +134 -0
- package/lib/node/axiom.js +6 -6
- package/lib/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +12 -12
- package/lib/node/body.js +4 -5
- package/lib/node/combinator.js +4 -4
- package/lib/node/conclusion.js +4 -4
- package/lib/node/conjecture.js +6 -6
- package/lib/node/constructor.js +4 -4
- package/lib/node/declaration/combinator.js +6 -6
- package/lib/node/declaration/complexType.js +6 -6
- package/lib/node/declaration/constructor.js +6 -6
- package/lib/node/declaration/metavariable.js +6 -6
- package/lib/node/declaration/property.js +6 -6
- package/lib/node/declaration/simpleType.js +6 -6
- package/lib/node/declaration/typePrefix.js +6 -6
- package/lib/node/declaration/variable.js +6 -6
- package/lib/node/declaration.js +6 -22
- package/lib/node/deduction.js +4 -4
- package/lib/node/derivation.js +4 -4
- package/lib/node/document.js +107 -0
- package/lib/node/equality.js +4 -4
- package/lib/node/error.js +4 -4
- package/lib/node/frame.js +25 -14
- package/lib/node/header.js +4 -4
- package/lib/node/hypothesis.js +4 -4
- package/lib/node/judgement.js +8 -8
- package/lib/node/label.js +4 -4
- package/lib/node/labels.js +4 -4
- package/lib/node/lemma.js +6 -6
- package/lib/node/metaArgument.js +4 -4
- package/lib/node/metaLemma.js +6 -6
- package/lib/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +12 -12
- package/lib/node/metaType.js +4 -4
- package/lib/node/metatheorem.js +6 -6
- package/lib/node/metavariable.js +4 -4
- package/lib/node/nonsense.js +4 -4
- package/lib/node/parameter.js +4 -4
- package/lib/node/parenthesisedLabel.js +4 -4
- package/lib/node/parenthesisedLabels.js +4 -4
- package/lib/node/placeholder.js +107 -0
- package/lib/node/premise.js +4 -4
- package/lib/node/procedureCall.js +4 -4
- package/lib/node/procedureReference.js +4 -4
- package/lib/node/proof.js +4 -4
- package/lib/node/property.js +4 -4
- package/lib/node/propertyRelation.js +4 -4
- package/lib/node/qualification.js +4 -4
- package/lib/node/reference.js +4 -4
- package/lib/node/rule.js +4 -4
- package/lib/node/section.js +4 -4
- package/lib/node/signature.js +4 -4
- package/lib/node/statement.js +15 -4
- package/lib/node/step.js +4 -4
- package/lib/node/subDerivation.js +4 -4
- package/lib/node/subproof.js +4 -4
- package/lib/node/substitution/frame.js +6 -6
- package/lib/node/substitution/statement.js +6 -6
- package/lib/node/substitution/term.js +6 -6
- package/lib/node/substitution.js +107 -0
- package/lib/node/supposition.js +4 -4
- package/lib/node/term.js +27 -4
- package/lib/node/theorem.js +6 -6
- package/lib/node/type.js +4 -4
- package/lib/node/typePrefix.js +4 -4
- package/lib/node/types.js +4 -4
- package/lib/node/variable.js +4 -4
- package/lib/nominal/parser.js +3 -3
- package/lib/nonTerminalNode.js +222 -0
- package/lib/nonTerminalNodeMap.js +5 -3
- package/lib/ontology/assertion/contained.js +8 -9
- package/lib/ontology/assertion/defined.js +9 -10
- package/lib/ontology/assertion/satisfies.js +4 -4
- package/lib/ontology/assumption.js +379 -0
- package/lib/ontology/declaration/combinator.js +75 -33
- package/lib/ontology/declaration/complexType.js +110 -63
- package/lib/ontology/declaration/constructor.js +81 -38
- package/lib/ontology/declaration/metavariable.js +87 -39
- package/lib/ontology/declaration/simpleType.js +95 -48
- package/lib/ontology/declaration/typePrefix.js +87 -40
- package/lib/ontology/declaration/variable.js +87 -39
- package/lib/ontology/declaration.js +13 -338
- package/lib/ontology/equivalence.js +295 -0
- package/lib/ontology/equivalences.js +264 -0
- package/lib/ontology/frame.js +49 -54
- package/lib/ontology/judgement.js +8 -8
- package/lib/ontology/metavariable.js +4 -4
- package/lib/ontology/premise.js +14 -5
- package/lib/ontology/reference.js +3 -9
- package/lib/ontology/rule.js +3 -4
- package/lib/ontology/statement.js +28 -24
- package/lib/ontology/step.js +2 -3
- package/lib/ontology/subproof.js +2 -3
- package/lib/ontology/substitution/statement.js +77 -36
- package/lib/ontology/substitution/term.js +14 -34
- package/lib/ontology/substitution.js +18 -19
- package/lib/ontology/substitutions.js +425 -0
- package/lib/ontology/supposition.js +14 -5
- package/lib/ontology/term.js +33 -36
- package/lib/ontology/topLevelAssertion.js +2 -3
- package/lib/ontology/topLevelMetaAssertion.js +2 -3
- package/lib/ontology/variable.js +1 -34
- package/lib/preamble.js +7 -4
- package/lib/ruleNames.js +20 -12
- package/lib/unifier/intrinsicLevel.js +4 -12
- package/lib/unifier/metaLevel.js +14 -22
- package/lib/utilities/frame.js +18 -0
- package/lib/utilities/statement.js +18 -0
- package/lib/utilities/substitutions.js +43 -30
- package/lib/utilities/variable.js +5 -17
- package/package.json +10 -10
- package/src/assignment/equality.js +1 -1
- package/src/context/file.js +5 -4
- package/src/context/local.js +28 -5
- package/src/context/partial.js +9 -14
- package/src/context/temporary.js +120 -51
- package/src/mixins/step/unify.js +4 -4
- package/src/node/argument.js +1 -1
- package/src/node/assertion/contained.js +3 -3
- package/src/node/assertion/defined.js +3 -3
- package/src/node/assertion/property.js +3 -3
- package/src/node/assertion/satisfies.js +3 -3
- package/src/node/assertion/subproof.js +3 -3
- package/src/node/assertion/type.js +3 -3
- package/src/node/assertion.js +7 -0
- package/src/node/assumption.js +35 -0
- package/src/node/axiom.js +3 -3
- package/src/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +2 -2
- package/src/node/body.js +1 -3
- package/src/node/combinator.js +1 -1
- package/src/node/conclusion.js +1 -1
- package/src/node/conjecture.js +3 -3
- package/src/node/constructor.js +1 -1
- package/src/node/declaration/combinator.js +3 -3
- package/src/node/declaration/complexType.js +3 -3
- package/src/node/declaration/constructor.js +3 -3
- package/src/node/declaration/metavariable.js +3 -3
- package/src/node/declaration/property.js +3 -3
- package/src/node/declaration/simpleType.js +3 -3
- package/src/node/declaration/typePrefix.js +3 -3
- package/src/node/declaration/variable.js +3 -3
- package/src/node/declaration.js +2 -18
- package/src/node/deduction.js +1 -1
- package/src/node/derivation.js +1 -1
- package/src/node/document.js +7 -0
- package/src/node/equality.js +1 -1
- package/src/node/error.js +1 -1
- package/src/node/frame.js +23 -11
- package/src/node/header.js +1 -1
- package/src/node/hypothesis.js +1 -1
- package/src/node/judgement.js +6 -6
- package/src/node/label.js +1 -1
- package/src/node/labels.js +1 -1
- package/src/node/lemma.js +3 -3
- package/src/node/metaArgument.js +1 -1
- package/src/node/metaLemma.js +3 -3
- package/src/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +2 -2
- package/src/node/metaType.js +1 -1
- package/src/node/metatheorem.js +3 -3
- package/src/node/metavariable.js +1 -1
- package/src/node/nonsense.js +1 -1
- package/src/node/parameter.js +1 -1
- package/src/node/parenthesisedLabel.js +1 -1
- package/src/node/parenthesisedLabels.js +1 -1
- package/src/node/placeholder.js +7 -0
- package/src/node/premise.js +1 -1
- package/src/node/procedureCall.js +1 -1
- package/src/node/procedureReference.js +1 -1
- package/src/node/proof.js +1 -1
- package/src/node/property.js +1 -1
- package/src/node/propertyRelation.js +1 -1
- package/src/node/qualification.js +1 -1
- package/src/node/reference.js +1 -1
- package/src/node/rule.js +2 -2
- package/src/node/section.js +1 -1
- package/src/node/signature.js +1 -1
- package/src/node/statement.js +13 -1
- package/src/node/step.js +1 -1
- package/src/node/subDerivation.js +1 -1
- package/src/node/subproof.js +1 -1
- package/src/node/substitution/frame.js +3 -3
- package/src/node/substitution/statement.js +3 -3
- package/src/node/substitution/term.js +3 -3
- package/src/node/substitution.js +7 -0
- package/src/node/supposition.js +1 -1
- package/src/node/term.js +27 -1
- package/src/node/theorem.js +3 -3
- package/src/node/type.js +1 -1
- package/src/node/typePrefix.js +1 -1
- package/src/node/types.js +1 -1
- package/src/node/variable.js +1 -1
- package/src/nominal/parser.js +2 -2
- package/src/{node/nonTerminal.js → nonTerminalNode.js} +31 -25
- package/src/nonTerminalNodeMap.js +10 -5
- package/src/ontology/assertion/contained.js +14 -14
- package/src/ontology/assertion/defined.js +13 -13
- package/src/ontology/assertion/satisfies.js +2 -1
- package/src/ontology/assumption.js +385 -0
- package/src/ontology/declaration/combinator.js +15 -24
- package/src/ontology/declaration/complexType.js +57 -53
- package/src/ontology/declaration/constructor.js +25 -31
- package/src/ontology/declaration/metavariable.js +25 -30
- package/src/ontology/declaration/simpleType.js +34 -38
- package/src/ontology/declaration/typePrefix.js +23 -31
- package/src/ontology/declaration/variable.js +26 -31
- package/src/ontology/declaration.js +8 -372
- package/src/{equivalence.js → ontology/equivalence.js} +4 -3
- package/src/{equivalences.js → ontology/equivalences.js} +14 -12
- package/src/ontology/frame.js +53 -63
- package/src/ontology/judgement.js +8 -8
- package/src/ontology/metavariable.js +2 -2
- package/src/ontology/premise.js +18 -4
- package/src/ontology/reference.js +4 -3
- package/src/ontology/rule.js +4 -3
- package/src/ontology/statement.js +31 -27
- package/src/ontology/step.js +2 -2
- package/src/ontology/subproof.js +2 -2
- package/src/ontology/substitution/statement.js +56 -53
- package/src/ontology/substitution/term.js +9 -35
- package/src/ontology/substitution.js +11 -15
- package/src/{substitutions.js → ontology/substitutions.js} +4 -3
- package/src/ontology/supposition.js +18 -4
- package/src/ontology/term.js +27 -39
- package/src/ontology/topLevelAssertion.js +2 -2
- package/src/ontology/topLevelMetaAssertion.js +2 -2
- package/src/ontology/variable.js +0 -54
- package/src/preamble.js +6 -3
- package/src/ruleNames.js +10 -8
- package/src/unifier/intrinsicLevel.js +3 -14
- package/src/unifier/metaLevel.js +14 -25
- package/src/utilities/frame.js +13 -0
- package/src/utilities/statement.js +13 -0
- package/src/utilities/substitutions.js +59 -31
- package/src/utilities/variable.js +1 -10
- package/lib/equivalence.js +0 -294
- package/lib/equivalences.js +0 -263
- package/lib/node/nonTerminal.js +0 -218
- package/lib/substitutions.js +0 -424
|
@@ -2,29 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get termVariableIdentifierFromTermNode () {
|
|
5
|
+
Object.defineProperty(exports, "termVariableIdentifierFromTermNode", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
13
8
|
return termVariableIdentifierFromTermNode;
|
|
14
|
-
},
|
|
15
|
-
get variableIdentifierFromVariableNode () {
|
|
16
|
-
return variableIdentifierFromVariableNode;
|
|
17
9
|
}
|
|
18
10
|
});
|
|
19
11
|
var _query = require("../utilities/query");
|
|
20
|
-
var
|
|
12
|
+
var termVariableIdentifierNodeQuery = (0, _query.nodeQuery)("/term/variable!/@identifier!");
|
|
21
13
|
function termVariableIdentifierFromTermNode(TermNode) {
|
|
22
14
|
var termVariableIdentifierTerminalNode = termVariableIdentifierNodeQuery(TermNode), termVariableIdentifierTerminalNodeContent = termVariableIdentifierTerminalNode.getContent(), termVariableIdentifier = termVariableIdentifierTerminalNodeContent; ///
|
|
23
15
|
return termVariableIdentifier;
|
|
24
16
|
}
|
|
25
|
-
function variableIdentifierFromVariableNode(variableNode) {
|
|
26
|
-
var variableIdentifierTerminalNode = variableIdentifierNodeQuery(variableNode), variableIdentifierTerminalNodeContent = variableIdentifierTerminalNode.getContent(), variableIdentifier = variableIdentifierTerminalNodeContent; ///
|
|
27
|
-
return variableIdentifier;
|
|
28
|
-
}
|
|
29
17
|
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlSWRlbnRpZmllck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIS9AaWRlbnRpZmllciFcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtVmFyaWFibGVJZGVudGlmaWVyRnJvbVRlcm1Ob2RlKFRlcm1Ob2RlKSB7XG4gIGNvbnN0IHRlcm1WYXJpYWJsZUlkZW50aWZpZXJUZXJtaW5hbE5vZGUgPSB0ZXJtVmFyaWFibGVJZGVudGlmaWVyTm9kZVF1ZXJ5KFRlcm1Ob2RlKSxcbiAgICAgICAgdGVybVZhcmlhYmxlSWRlbnRpZmllclRlcm1pbmFsTm9kZUNvbnRlbnQgPSB0ZXJtVmFyaWFibGVJZGVudGlmaWVyVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgdGVybVZhcmlhYmxlSWRlbnRpZmllciA9IHRlcm1WYXJpYWJsZUlkZW50aWZpZXJUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICByZXR1cm4gdGVybVZhcmlhYmxlSWRlbnRpZmllcjtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtVmFyaWFibGVJZGVudGlmaWVyRnJvbVRlcm1Ob2RlIiwidGVybVZhcmlhYmxlSWRlbnRpZmllck5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIlRlcm1Ob2RlIiwidGVybVZhcmlhYmxlSWRlbnRpZmllclRlcm1pbmFsTm9kZSIsInRlcm1WYXJpYWJsZUlkZW50aWZpZXJUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInRlcm1WYXJpYWJsZUlkZW50aWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1nQkE7OztlQUFBQTs7O3FCQUpVO0FBRTFCLElBQU1DLGtDQUFrQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUUzQyxTQUFTRixtQ0FBbUNHLFFBQVE7SUFDekQsSUFBTUMscUNBQXFDSCxnQ0FBZ0NFLFdBQ3JFRSw0Q0FBNENELG1DQUFtQ0UsVUFBVSxJQUN6RkMseUJBQXlCRiwyQ0FBMkMsR0FBRztJQUU3RSxPQUFPRTtBQUNUIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.404",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.36",
|
|
14
|
-
"necessary": "^
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
18
|
-
"occam-furtle": "^2.0.
|
|
19
|
-
"occam-grammars": "^1.3.
|
|
20
|
-
"occam-lexers": "^23.1.
|
|
21
|
-
"occam-parsers": "^23.1.
|
|
22
|
-
"occam-query": "^4.1.
|
|
14
|
+
"necessary": "^16.0.3",
|
|
15
|
+
"occam-custom-grammars": "^5.0.1322",
|
|
16
|
+
"occam-entities": "^1.0.431",
|
|
17
|
+
"occam-file-system": "^6.0.446",
|
|
18
|
+
"occam-furtle": "^2.0.265",
|
|
19
|
+
"occam-grammars": "^1.3.414",
|
|
20
|
+
"occam-lexers": "^23.1.22",
|
|
21
|
+
"occam-parsers": "^23.1.25",
|
|
22
|
+
"occam-query": "^4.1.131"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@swc/core": "1.13.20",
|
|
@@ -10,7 +10,7 @@ export default class EqualityAssignment {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
assign(context) {
|
|
13
|
-
const equalityAdded = context.addEquality(this.equality
|
|
13
|
+
const equalityAdded = context.addEquality(this.equality),
|
|
14
14
|
equalityString = this.equality.getString(),
|
|
15
15
|
equalityAssigned = equalityAdded; ///
|
|
16
16
|
|
package/src/context/file.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import Substitutions from "../substitutions";
|
|
5
|
+
import ontology from "../ontology";
|
|
7
6
|
import topLevelVerifier from "../verifier/topLevel";
|
|
8
7
|
|
|
9
8
|
import { baseType } from "../ontology/type";
|
|
@@ -92,7 +91,8 @@ export default class FileContext {
|
|
|
92
91
|
}
|
|
93
92
|
|
|
94
93
|
getEquivalences() {
|
|
95
|
-
const
|
|
94
|
+
const { Equivalences } = ontology,
|
|
95
|
+
equivalences = Equivalences.fromNothing();
|
|
96
96
|
|
|
97
97
|
return equivalences;
|
|
98
98
|
}
|
|
@@ -736,7 +736,8 @@ export default class FileContext {
|
|
|
736
736
|
isLabelPresentByReference(reference) {
|
|
737
737
|
const labels = this.getLabels(),
|
|
738
738
|
labelPresent = labels.some((label) => {
|
|
739
|
-
const
|
|
739
|
+
const { Substitutions } = ontology,
|
|
740
|
+
context = this, ///
|
|
740
741
|
substitutions = Substitutions.fromNothing(),
|
|
741
742
|
labelUnifies = reference.unifyLabel(label, substitutions, context);
|
|
742
743
|
|
package/src/context/local.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import Equivalences from "../equivalences";
|
|
5
|
+
import ontology from "../ontology";
|
|
7
6
|
|
|
8
7
|
const { last } = arrayUtilities;
|
|
9
8
|
|
|
@@ -119,19 +118,28 @@ class LocalContext {
|
|
|
119
118
|
|
|
120
119
|
addTheorem(theorem) { this.context.addTheorem(theorem); }
|
|
121
120
|
|
|
122
|
-
addEquality(equality
|
|
121
|
+
addEquality(equality) {
|
|
123
122
|
let equalityAdded;
|
|
124
123
|
|
|
125
124
|
const equalityReflexive = equality.isReflexive();
|
|
126
125
|
|
|
127
126
|
if (!equalityReflexive) {
|
|
128
|
-
const
|
|
127
|
+
const { Equivalence } = ontology,
|
|
128
|
+
equivalence = Equivalence.fromEquality(equality),
|
|
129
|
+
context = this; ///
|
|
129
130
|
|
|
130
131
|
this.equivalences = this.equivalences.mergedWithEquivalence(equivalence, context);
|
|
131
132
|
}
|
|
132
133
|
|
|
133
134
|
equalityAdded = true;
|
|
134
135
|
|
|
136
|
+
if (equalityAdded) {
|
|
137
|
+
const context = this, ///
|
|
138
|
+
equalityString = equality.getString();
|
|
139
|
+
|
|
140
|
+
context.trace(`Added the '${equalityString}' equality.`)
|
|
141
|
+
}
|
|
142
|
+
|
|
135
143
|
return equalityAdded;
|
|
136
144
|
}
|
|
137
145
|
|
|
@@ -147,6 +155,13 @@ class LocalContext {
|
|
|
147
155
|
variableAdded = true;
|
|
148
156
|
}
|
|
149
157
|
|
|
158
|
+
if (variableAdded) {
|
|
159
|
+
const context = this,
|
|
160
|
+
variableString = variable.getString();
|
|
161
|
+
|
|
162
|
+
context.trace(`Added the '${variableString}' variable.`)
|
|
163
|
+
}
|
|
164
|
+
|
|
150
165
|
return variableAdded;
|
|
151
166
|
}
|
|
152
167
|
|
|
@@ -162,6 +177,13 @@ class LocalContext {
|
|
|
162
177
|
judgementAdded = true;
|
|
163
178
|
}
|
|
164
179
|
|
|
180
|
+
if (judgementAdded) {
|
|
181
|
+
const context = this, ///
|
|
182
|
+
judgementString = judgement.getString();
|
|
183
|
+
|
|
184
|
+
context.trace(`Added the '${judgementString}' judgement.`)
|
|
185
|
+
}
|
|
186
|
+
|
|
165
187
|
return judgementAdded;
|
|
166
188
|
}
|
|
167
189
|
|
|
@@ -357,7 +379,8 @@ class LocalContext {
|
|
|
357
379
|
error(message, node = null) { this.context.error(message, node); }
|
|
358
380
|
|
|
359
381
|
static fromNothing(context) {
|
|
360
|
-
const
|
|
382
|
+
const { Equivalences } = ontology,
|
|
383
|
+
variables = [],
|
|
361
384
|
judgements = [],
|
|
362
385
|
equivalences = Equivalences.fromNothing(),
|
|
363
386
|
stepsOrSubproofs = [],
|
package/src/context/partial.js
CHANGED
|
@@ -4,15 +4,11 @@ import { BNFLexer } from "occam-lexers";
|
|
|
4
4
|
import { BNFParser } from "occam-parsers";
|
|
5
5
|
import { arrayUtilities } from "necessary";
|
|
6
6
|
|
|
7
|
-
import { nodeQuery } from "../utilities/query";
|
|
8
|
-
|
|
9
7
|
const { first } = arrayUtilities;
|
|
10
8
|
|
|
11
9
|
const bnfLexer = BNFLexer.fromNothing(),
|
|
12
10
|
bnfParser = BNFParser.fromNothing();
|
|
13
11
|
|
|
14
|
-
const childNodeQuery = nodeQuery("/*/*!");
|
|
15
|
-
|
|
16
12
|
export default class PartialContext {
|
|
17
13
|
constructor(node, tokens) {
|
|
18
14
|
this.node = node;
|
|
@@ -29,25 +25,24 @@ export default class PartialContext {
|
|
|
29
25
|
|
|
30
26
|
static fromStringLexerAndParser(Class, string, lexer, parser) {
|
|
31
27
|
const { rule } = Class,
|
|
32
|
-
|
|
33
|
-
ruleName = rule.getName();
|
|
34
|
-
|
|
35
|
-
ruleMap[ruleName] = rule;
|
|
36
|
-
|
|
37
|
-
const startRule = rule, ///
|
|
28
|
+
startRule = rule, ///
|
|
38
29
|
content = `${string}
|
|
39
30
|
`;
|
|
40
31
|
|
|
41
32
|
let tokens = lexer.tokenise(content),
|
|
42
33
|
node = parser.parse(tokens, startRule);
|
|
43
34
|
|
|
44
|
-
|
|
35
|
+
node.someChildNode((childNode) => {
|
|
36
|
+
const childNodeNonTerminalNode = childNode.isNonTerminalNode();
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
if (childNodeNonTerminalNode) {
|
|
39
|
+
node = childNode; ///
|
|
47
40
|
|
|
48
|
-
|
|
41
|
+
tokens = tokensFromTokensAndNode(tokens, node); ///
|
|
49
42
|
|
|
50
|
-
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
})
|
|
51
46
|
|
|
52
47
|
const partialContext = new Class(node, tokens);
|
|
53
48
|
|
package/src/context/temporary.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
const {
|
|
5
|
+
const { extract, compress } = arrayUtilities;
|
|
6
6
|
|
|
7
7
|
export default class TemporaryContext {
|
|
8
|
-
constructor(context, tokens, terms, frames, statements, assertions,
|
|
8
|
+
constructor(context, tokens, terms, frames, statements, assertions, substitutions, reference) {
|
|
9
9
|
this.context = context;
|
|
10
10
|
this.tokens = tokens;
|
|
11
11
|
this.terms = terms;
|
|
12
12
|
this.frames = frames;
|
|
13
13
|
this.statements = statements;
|
|
14
14
|
this.assertions = assertions;
|
|
15
|
+
this.substitutions = substitutions;
|
|
15
16
|
this.reference = reference;
|
|
16
|
-
this.substitution = substitution;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
getContext() {
|
|
@@ -40,16 +40,18 @@ export default class TemporaryContext {
|
|
|
40
40
|
return this.assertions;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
return this.
|
|
43
|
+
getSubstitutions() {
|
|
44
|
+
return this.substitutions;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
return this.
|
|
47
|
+
getReference() {
|
|
48
|
+
return this.reference;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
addTerm(term) {
|
|
52
|
-
const
|
|
52
|
+
const context = this, ///
|
|
53
|
+
termNode = term.getNode(),
|
|
54
|
+
termString = term.getString();
|
|
53
55
|
|
|
54
56
|
extract(this.terms, (term) => {
|
|
55
57
|
const termMatchesTermNode = term.matchTermNode(termNode);
|
|
@@ -59,11 +61,15 @@ export default class TemporaryContext {
|
|
|
59
61
|
}
|
|
60
62
|
});
|
|
61
63
|
|
|
64
|
+
context.trace(`ADded the '${termString}' term.`);
|
|
65
|
+
|
|
62
66
|
this.terms.push(term);
|
|
63
67
|
}
|
|
64
68
|
|
|
65
69
|
addFrame(frame) {
|
|
66
|
-
const
|
|
70
|
+
const context = this, ///
|
|
71
|
+
frameNode = frame.getNode(),
|
|
72
|
+
frameString = frame.getString();
|
|
67
73
|
|
|
68
74
|
extract(this.frames, (frame) => {
|
|
69
75
|
const frameMatchesFrameNode = frame.matchFrameNode(frameNode);
|
|
@@ -73,19 +79,15 @@ export default class TemporaryContext {
|
|
|
73
79
|
}
|
|
74
80
|
});
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
removeFrame(frame) {
|
|
80
|
-
const index = this.frames.indexOf(frame),
|
|
81
|
-
start = index, ///
|
|
82
|
-
deleteCount = 1;
|
|
82
|
+
context.trace(`Added the '${frameString}' frame.`);
|
|
83
83
|
|
|
84
|
-
this.frames.
|
|
84
|
+
this.frames.push(frame);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
addStatement(statement) {
|
|
88
|
-
const
|
|
88
|
+
const context = this, ///
|
|
89
|
+
statementNode = statement.getNode(),
|
|
90
|
+
statementString = statement.getString();
|
|
89
91
|
|
|
90
92
|
extract(this.statements, (statement) => {
|
|
91
93
|
const statementMatchesFrameNode = statement.matchStatementNode(statementNode);
|
|
@@ -95,11 +97,15 @@ export default class TemporaryContext {
|
|
|
95
97
|
}
|
|
96
98
|
});
|
|
97
99
|
|
|
100
|
+
context.trace(`Added the '${statementString}' statement.`);
|
|
101
|
+
|
|
98
102
|
this.statements.push(statement);
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
addAssertion(assertion) {
|
|
102
|
-
const
|
|
106
|
+
const context = this, ///
|
|
107
|
+
assertionNode = assertion.getNode(),
|
|
108
|
+
assertionString = assertion.getString();
|
|
103
109
|
|
|
104
110
|
extract(this.assertions, (assertion) => {
|
|
105
111
|
const assertionMatchesFrameNode = assertion.matchAssertionNode(assertionNode);
|
|
@@ -109,15 +115,36 @@ export default class TemporaryContext {
|
|
|
109
115
|
}
|
|
110
116
|
});
|
|
111
117
|
|
|
118
|
+
context.trace(`Added the '${assertionString}' assertion.`);
|
|
119
|
+
|
|
112
120
|
this.assertions.push(assertion);
|
|
113
121
|
}
|
|
114
122
|
|
|
123
|
+
addSubstitution(substitution) {
|
|
124
|
+
const context = this, ///
|
|
125
|
+
substitutionNode = substitution.getNode(),
|
|
126
|
+
substitutionString = substitution.getString();
|
|
127
|
+
|
|
128
|
+
extract(this.substitutions, (substitution) => {
|
|
129
|
+
const substitutionMatchesFrameNode = substitution.matchSubstitutionNode(substitutionNode);
|
|
130
|
+
|
|
131
|
+
if (substitutionMatchesFrameNode) {
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
context.trace(`Added the '${substitutionString}' substitution.`);
|
|
137
|
+
|
|
138
|
+
this.substitutions.push(substitution);
|
|
139
|
+
}
|
|
140
|
+
|
|
115
141
|
addReference(reference) {
|
|
142
|
+
const context = this, ///
|
|
143
|
+
referenceString = reference.getString();
|
|
144
|
+
|
|
116
145
|
this.reference = reference;
|
|
117
|
-
}
|
|
118
146
|
|
|
119
|
-
|
|
120
|
-
this.substitution = substitution;
|
|
147
|
+
context.trace(`Added the '${referenceString}' reference.`);
|
|
121
148
|
}
|
|
122
149
|
|
|
123
150
|
findTermByTermNode(termNode) {
|
|
@@ -144,6 +171,18 @@ export default class TemporaryContext {
|
|
|
144
171
|
return frame;
|
|
145
172
|
}
|
|
146
173
|
|
|
174
|
+
findAssertionByAssertionNode(assertionNode) {
|
|
175
|
+
const assertion = this.assertions.find((assertion) => {
|
|
176
|
+
const assertionMatchesAssertionNode = assertion.matchAssertionNode(assertionNode);
|
|
177
|
+
|
|
178
|
+
if (assertionMatchesAssertionNode) {
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
}) || null;
|
|
182
|
+
|
|
183
|
+
return assertion;
|
|
184
|
+
}
|
|
185
|
+
|
|
147
186
|
findStatementByStatementNode(statementNode) {
|
|
148
187
|
const statement = this.statements.find((statement) => {
|
|
149
188
|
const statementMatchesStatementNode = statement.matchStatementNode(statementNode);
|
|
@@ -156,30 +195,16 @@ export default class TemporaryContext {
|
|
|
156
195
|
return statement;
|
|
157
196
|
}
|
|
158
197
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const referenceMatchesMetavariableName = this.reference.matchMetavariableName(metavariableName);
|
|
163
|
-
|
|
164
|
-
if (referenceMatchesMetavariableName) {
|
|
165
|
-
reference = this.reference;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return reference;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
getFrame() {
|
|
172
|
-
let frame = null;
|
|
173
|
-
|
|
174
|
-
const framesLengtrh = this.frames.length;
|
|
198
|
+
findSubtitutionBySubtitutionNode(substitutionNode) {
|
|
199
|
+
const substitution = this.substitutions.find((substitution) => {
|
|
200
|
+
const substitutionMatchesSubtitutionNode = substitution.matchSubtitutionNode(substitutionNode);
|
|
175
201
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
202
|
+
if (substitutionMatchesSubtitutionNode) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
}) || null;
|
|
181
206
|
|
|
182
|
-
return
|
|
207
|
+
return substitution;
|
|
183
208
|
}
|
|
184
209
|
|
|
185
210
|
getVariables(nested = true) { return this.context.getVariables(nested); }
|
|
@@ -220,7 +245,7 @@ export default class TemporaryContext {
|
|
|
220
245
|
|
|
221
246
|
addTheorem(theorem) { this.context.addTheorem(theorem); }
|
|
222
247
|
|
|
223
|
-
addEquality(equality
|
|
248
|
+
addEquality(equality) { return this.context.addEquality(equality); }
|
|
224
249
|
|
|
225
250
|
addVariable(variable, nested = true) { return this.context.addVariable(variable, nested); }
|
|
226
251
|
|
|
@@ -356,15 +381,59 @@ export default class TemporaryContext {
|
|
|
356
381
|
|
|
357
382
|
error(message, node = null) { this.context.error(message, node); }
|
|
358
383
|
|
|
384
|
+
marge(context) {
|
|
385
|
+
const terms = context.getTerms(),
|
|
386
|
+
frames = context.getFrames(),
|
|
387
|
+
statements = context.getStatements(),
|
|
388
|
+
assertions = context.getAssertions(),
|
|
389
|
+
substitutions = context.getSubstitutions();
|
|
390
|
+
|
|
391
|
+
this.terms = [
|
|
392
|
+
...this.terms,
|
|
393
|
+
...terms
|
|
394
|
+
];
|
|
395
|
+
|
|
396
|
+
this.frames = [
|
|
397
|
+
...this.frames,
|
|
398
|
+
...frames
|
|
399
|
+
];
|
|
400
|
+
|
|
401
|
+
this.statements = [
|
|
402
|
+
...this.statements,
|
|
403
|
+
...statements
|
|
404
|
+
];
|
|
405
|
+
|
|
406
|
+
this.assertions = [
|
|
407
|
+
...this.assertions,
|
|
408
|
+
...assertions
|
|
409
|
+
];
|
|
410
|
+
|
|
411
|
+
this.substitutions = [
|
|
412
|
+
...this.substitutions,
|
|
413
|
+
...substitutions
|
|
414
|
+
];
|
|
415
|
+
|
|
416
|
+
compress(this.terms, (termA, termB) => {
|
|
417
|
+
const termANode = termA.getNode(),
|
|
418
|
+
termBNode = termB.getNode(),
|
|
419
|
+
termANodeMatchesTermBNode = termANode.match(termBNode);
|
|
420
|
+
|
|
421
|
+
if (termAMatchesTermB) {
|
|
422
|
+
return true;
|
|
423
|
+
}
|
|
424
|
+
});
|
|
425
|
+
|
|
426
|
+
}
|
|
427
|
+
|
|
359
428
|
static fromNothing(context) {
|
|
360
429
|
const terms = [],
|
|
361
430
|
frames = [],
|
|
362
431
|
tokens = null,
|
|
363
432
|
statements = [],
|
|
364
433
|
assertions = [],
|
|
434
|
+
substitutions = [],
|
|
365
435
|
reference = null,
|
|
366
|
-
|
|
367
|
-
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, reference, substitution);
|
|
436
|
+
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, substitutions, reference);
|
|
368
437
|
|
|
369
438
|
return temporaryContext;
|
|
370
439
|
}
|
|
@@ -373,9 +442,9 @@ export default class TemporaryContext {
|
|
|
373
442
|
const tokens = null,
|
|
374
443
|
statements = [],
|
|
375
444
|
assertions = [],
|
|
445
|
+
substitutions = [],
|
|
376
446
|
reference = null,
|
|
377
|
-
|
|
378
|
-
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, reference, substitution);
|
|
447
|
+
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, substitutions, reference);
|
|
379
448
|
|
|
380
449
|
return temporaryContext;
|
|
381
450
|
}
|
|
@@ -385,9 +454,9 @@ export default class TemporaryContext {
|
|
|
385
454
|
frames = [],
|
|
386
455
|
statements = [],
|
|
387
456
|
assertions = [],
|
|
457
|
+
substitutions = [],
|
|
388
458
|
reference = null,
|
|
389
|
-
|
|
390
|
-
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, reference, substitution);
|
|
459
|
+
temporaryContext = new TemporaryContext(context, tokens, terms, frames, statements, assertions, substitutions, reference);
|
|
391
460
|
|
|
392
461
|
return temporaryContext;
|
|
393
462
|
}
|
package/src/mixins/step/unify.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import ontology from "../../ontology";
|
|
6
|
-
import Substitutions from "../../substitutions";
|
|
7
6
|
|
|
8
7
|
import { equalityFromStatement,
|
|
9
8
|
judgementFromStatement,
|
|
@@ -109,7 +108,8 @@ function unifyAsSatisfiesAssertion(statement, reference, satisfiesAssertion, sub
|
|
|
109
108
|
const satisfiable = axiom.isSatisfiable();
|
|
110
109
|
|
|
111
110
|
if (satisfiable) {
|
|
112
|
-
const
|
|
111
|
+
const { Substitutions } = ontology,
|
|
112
|
+
substitutions = Substitutions.fromNothing(),
|
|
113
113
|
axiomLemmaTheoremOrConjectureUnifies = axiom.unifyAxiomLemmaTheoremOrConjecture(axiomLemmaTheoremOrConjecture, substitutions, context);
|
|
114
114
|
|
|
115
115
|
if (axiomLemmaTheoremOrConjectureUnifies) {
|
|
@@ -140,7 +140,8 @@ function unifyWithAxiomLemmaTheoremOrConjecture(statement, reference, satisfiesA
|
|
|
140
140
|
let unifiesWithAxiomLemmaTheoremOrConjecture = false;
|
|
141
141
|
|
|
142
142
|
if (reference !== null) {
|
|
143
|
-
const
|
|
143
|
+
const { Substitutions } = ontology,
|
|
144
|
+
axiomLemmaTheoremOrConjecture = context.findAxiomLemmaTheoremOrConjectureByReference(reference),
|
|
144
145
|
generalSubstitutions = substitutions; ///
|
|
145
146
|
|
|
146
147
|
if (axiomLemmaTheoremOrConjecture !== null) {
|
|
@@ -158,7 +159,6 @@ function unifyWithAxiomLemmaTheoremOrConjecture(statement, reference, satisfiesA
|
|
|
158
159
|
if (statementAndStepsUnify) {
|
|
159
160
|
const { StatementSubstitution } = ontology,
|
|
160
161
|
metavariable = reference.getMetavariable(),
|
|
161
|
-
specificContext = context, ///
|
|
162
162
|
statementSubstitution = StatementSubstitution.fromStatementAndMetavariable(statement, metavariable, context),
|
|
163
163
|
substitution = statementSubstitution; ///
|
|
164
164
|
|
package/src/node/argument.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AssertionNode from "../../node/assertion";
|
|
4
4
|
|
|
5
5
|
import { MISSING } from "../../constants";
|
|
6
6
|
import { TERM_RULE_NAME, FRAME_RULE_NAME, STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
7
7
|
|
|
8
|
-
export default class ContainedAssertionNode extends
|
|
8
|
+
export default class ContainedAssertionNode extends AssertionNode {
|
|
9
9
|
isNegated() {
|
|
10
10
|
let negated = false;
|
|
11
11
|
|
|
@@ -49,5 +49,5 @@ export default class ContainedAssertionNode extends NonTerminalNode {
|
|
|
49
49
|
return statementNode;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
52
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(ContainedAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
53
53
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AssertionNode from "../../node/assertion";
|
|
4
4
|
|
|
5
5
|
import { UNDEFINED } from "../../constants";
|
|
6
6
|
import { FRAME_RULE_NAME, TERM_RULE_NAME } from "../../ruleNames";
|
|
7
7
|
|
|
8
|
-
export default class DefinedAssertionNode extends
|
|
8
|
+
export default class DefinedAssertionNode extends AssertionNode {
|
|
9
9
|
isNegated() {
|
|
10
10
|
let negated = false;
|
|
11
11
|
|
|
@@ -42,5 +42,5 @@ export default class DefinedAssertionNode extends NonTerminalNode {
|
|
|
42
42
|
return frameNode;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
45
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(DefinedAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
46
46
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AssertionNode from "../../node/assertion";
|
|
4
4
|
|
|
5
5
|
import { TERM_RULE_NAME, FRAME_RULE_NAME, PROPERTY_RELATION_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class PropertyAssertionNode extends
|
|
7
|
+
export default class PropertyAssertionNode extends AssertionNode {
|
|
8
8
|
getTermNode() {
|
|
9
9
|
const ruleName = TERM_RULE_NAME,
|
|
10
10
|
termNode = this.getNodeByRuleName(ruleName);
|
|
@@ -26,5 +26,5 @@ export default class PropertyAssertionNode extends NonTerminalNode {
|
|
|
26
26
|
return propertyRelationNode;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
29
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
30
30
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import AssertionNode from "../../node/assertion";
|
|
4
4
|
|
|
5
5
|
import { SIGNATURE_RULE_NAME, METAVARIABLE_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
|
-
export default class SatisfiesAssertionNode extends
|
|
7
|
+
export default class SatisfiesAssertionNode extends AssertionNode {
|
|
8
8
|
getSignatureNode() {
|
|
9
9
|
const ruleName = SIGNATURE_RULE_NAME,
|
|
10
10
|
signatureNode = this.getNodeByRuleName(ruleName);
|
|
@@ -19,5 +19,5 @@ export default class SatisfiesAssertionNode extends NonTerminalNode {
|
|
|
19
19
|
return metavariableNode;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(SatisfiesAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
23
|
}
|