occam-verify-cli 0.0.902 → 0.0.904
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/axiomLemmaTheoremConjecture.js +18 -34
- package/lib/conclusion.js +3 -3
- package/lib/constants.js +1 -9
- package/lib/metaLemmaMetatheorem.js +22 -40
- package/lib/rule.js +45 -83
- package/lib/ruleNames.js +1 -21
- package/lib/utilities/array.js +49 -42
- package/lib/utilities/verifier.js +4 -10
- package/lib/verifier/node/metastatement.js +31 -6
- package/lib/verifier/node/statementAsCombinator.js +31 -6
- package/lib/verifier/node/termAsConstructor.js +25 -5
- package/lib/verifier/nodes/equality.js +13 -3
- package/lib/verifier/nodes/intrinsicLevel.js +13 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
- package/lib/verifier/nodes/metaLevel.js +13 -3
- package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
- package/lib/verify/containedAssertion.js +2 -2
- package/lib/verify/premise.js +1 -3
- package/lib/verify/statement/qualified.js +4 -7
- package/lib/verify/statement/unqualified.js +2 -5
- package/lib/verify/statement.js +34 -19
- package/lib/verify/statementAsCombinator.js +1 -2
- package/package.json +1 -1
- package/src/axiomLemmaTheoremConjecture.js +27 -47
- package/src/conclusion.js +2 -2
- package/src/constants.js +0 -2
- package/src/metaLemmaMetatheorem.js +33 -54
- package/src/rule.js +58 -101
- package/src/ruleNames.js +0 -5
- package/src/utilities/array.js +22 -42
- package/src/utilities/verifier.js +3 -11
- package/src/verifier/node/metastatement.js +46 -6
- package/src/verifier/node/statementAsCombinator.js +50 -10
- package/src/verifier/node/termAsConstructor.js +37 -6
- package/src/verifier/nodes/equality.js +19 -4
- package/src/verifier/nodes/intrinsicLevel.js +18 -3
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
- package/src/verifier/nodes/metaLevel.js +19 -4
- package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
- package/src/verifier/nodes/termAgainstConstructor.js +19 -4
- package/src/verify/containedAssertion.js +1 -1
- package/src/verify/premise.js +0 -2
- package/src/verify/statement/qualified.js +3 -7
- package/src/verify/statement/unqualified.js +1 -5
- package/src/verify/statement.js +38 -18
- package/src/verify/statementAsCombinator.js +0 -1
- package/lib/permutationsMatrix.js +0 -466136
- package/lib/utilities/permutations.js +0 -114
- package/src/permutationsMatrix.js +0 -6
- package/src/utilities/permutations.js +0 -148
|
@@ -11,6 +11,7 @@ import { verifyStandaloneMetavariable } from "../../verify/metavariable";
|
|
|
11
11
|
|
|
12
12
|
const termNodeQuery = nodeQuery("/term!"),
|
|
13
13
|
variableNodeQuery = nodeQuery("/variable!"),
|
|
14
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
14
15
|
metavariableNodeQuery = nodeQuery("/metavariable!");
|
|
15
16
|
|
|
16
17
|
class MetastatementNodeVerifier extends NodeVerifier {
|
|
@@ -20,23 +21,62 @@ class MetastatementNodeVerifier extends NodeVerifier {
|
|
|
20
21
|
const nodeQueryMaps = [
|
|
21
22
|
{
|
|
22
23
|
nodeQuery: termNodeQuery,
|
|
23
|
-
verifyNode:
|
|
24
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
25
|
+
let nonTerminalNodeVerified;
|
|
26
|
+
|
|
27
|
+
const termNode = node, ///
|
|
28
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
29
|
+
|
|
30
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
31
|
+
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
24
34
|
},
|
|
25
35
|
{
|
|
26
36
|
nodeQuery: variableNodeQuery,
|
|
27
|
-
verifyNode:
|
|
37
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
38
|
+
let nonTerminalNodeVerified;
|
|
39
|
+
|
|
40
|
+
const variableNode = node, ///
|
|
41
|
+
variableNodeVerified = this.verifyVariableNode(variableNode, localMetaContext, verifyAhead);
|
|
42
|
+
|
|
43
|
+
nonTerminalNodeVerified = variableNodeVerified; ///
|
|
44
|
+
|
|
45
|
+
return nonTerminalNodeVerified;
|
|
46
|
+
}
|
|
28
47
|
},
|
|
29
48
|
{
|
|
30
49
|
nodeQuery: metavariableNodeQuery,
|
|
31
|
-
verifyNode:
|
|
50
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
51
|
+
let nonTerminalNodeVerified;
|
|
52
|
+
|
|
53
|
+
const metavariableNode = node, ///
|
|
54
|
+
metavariableNodeVerified = this.verifyMetavariableNode(metavariableNode, localMetaContext, verifyAhead);
|
|
55
|
+
|
|
56
|
+
nonTerminalNodeVerified = metavariableNodeVerified; ///
|
|
57
|
+
|
|
58
|
+
return nonTerminalNodeVerified;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
63
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
64
|
+
let nonTerminalNodeVerified;
|
|
65
|
+
|
|
66
|
+
const nonTerminalNode = node; ///
|
|
67
|
+
|
|
68
|
+
nonTerminalNodeVerified =
|
|
69
|
+
|
|
70
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
71
|
+
|
|
72
|
+
return nonTerminalNodeVerified;
|
|
73
|
+
}
|
|
32
74
|
}
|
|
33
75
|
];
|
|
34
76
|
|
|
35
77
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localMetaContext, verifyAhead);
|
|
36
78
|
|
|
37
|
-
nonTerminalNodeVerified = nodeVerified
|
|
38
|
-
true :
|
|
39
|
-
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
79
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
40
80
|
|
|
41
81
|
return nonTerminalNodeVerified;
|
|
42
82
|
}
|
|
@@ -10,7 +10,8 @@ import { verifyStandaloneStatement } from "../../verify/statement";
|
|
|
10
10
|
|
|
11
11
|
const termNodeQuery = nodeQuery("/term!"),
|
|
12
12
|
typeNodeQuery = nodeQuery("/type!"),
|
|
13
|
-
statementNodeQuery = nodeQuery("/statement!")
|
|
13
|
+
statementNodeQuery = nodeQuery("/statement!"),
|
|
14
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
14
15
|
|
|
15
16
|
class StatementAsCombinatorNodeVerifier extends NodeVerifier {
|
|
16
17
|
verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead) {
|
|
@@ -19,44 +20,83 @@ class StatementAsCombinatorNodeVerifier extends NodeVerifier {
|
|
|
19
20
|
const nodeQueryMaps = [
|
|
20
21
|
{
|
|
21
22
|
nodeQuery: termNodeQuery,
|
|
22
|
-
verifyNode:
|
|
23
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
24
|
+
let nonTerminalNodeVerified;
|
|
25
|
+
|
|
26
|
+
const termNode = node, ///
|
|
27
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
28
|
+
|
|
29
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
30
|
+
|
|
31
|
+
return nonTerminalNodeVerified;
|
|
32
|
+
}
|
|
23
33
|
},
|
|
24
34
|
{
|
|
25
35
|
nodeQuery: typeNodeQuery,
|
|
26
|
-
verifyNode:
|
|
36
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
37
|
+
let nonTerminalNodeVerified;
|
|
38
|
+
|
|
39
|
+
const typeNode = node, ///
|
|
40
|
+
typeNodeVerified = this.verifyTypeNode(typeNode, localMetaContext, verifyAhead);
|
|
41
|
+
|
|
42
|
+
nonTerminalNodeVerified = typeNodeVerified; ///
|
|
43
|
+
|
|
44
|
+
return nonTerminalNodeVerified;
|
|
45
|
+
}
|
|
27
46
|
},
|
|
28
47
|
{
|
|
29
48
|
nodeQuery: statementNodeQuery,
|
|
30
|
-
verifyNode:
|
|
49
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
50
|
+
let nonTerminalNodeVerified;
|
|
51
|
+
|
|
52
|
+
const statementNode = node, ///
|
|
53
|
+
statementNodeVerified = this.verifyStatementNode(statementNode, localMetaContext, verifyAhead);
|
|
54
|
+
|
|
55
|
+
nonTerminalNodeVerified = statementNodeVerified; ///
|
|
56
|
+
|
|
57
|
+
return nonTerminalNodeVerified;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
62
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
63
|
+
let nonTerminalNodeVerified;
|
|
64
|
+
|
|
65
|
+
const nonTerminalNode = node; ///
|
|
66
|
+
|
|
67
|
+
nonTerminalNodeVerified =
|
|
68
|
+
|
|
69
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
70
|
+
|
|
71
|
+
return nonTerminalNodeVerified;
|
|
72
|
+
}
|
|
31
73
|
}
|
|
32
74
|
];
|
|
33
75
|
|
|
34
76
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localContext, verifyAhead);
|
|
35
77
|
|
|
36
|
-
nonTerminalNodeVerified = nodeVerified
|
|
37
|
-
true :
|
|
38
|
-
super.verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead);
|
|
78
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
39
79
|
|
|
40
80
|
return nonTerminalNodeVerified;
|
|
41
81
|
}
|
|
42
82
|
|
|
43
83
|
verifyStatementNode(statementNode, localContext, verifyAhead) {
|
|
44
84
|
const standaloneStatementVerified = verifyStandaloneStatement(statementNode, localContext, verifyAhead),
|
|
45
|
-
statementNodeVerified = standaloneStatementVerified;
|
|
85
|
+
statementNodeVerified = standaloneStatementVerified; ///
|
|
46
86
|
|
|
47
87
|
return statementNodeVerified;
|
|
48
88
|
}
|
|
49
89
|
|
|
50
90
|
verifyTermNode(termNode, localContext, verifyAhead) {
|
|
51
91
|
const standaloneTermVerified = verifyStandaloneTerm(termNode, localContext, verifyAhead),
|
|
52
|
-
|
|
92
|
+
termNodeVerified = standaloneTermVerified; ///
|
|
53
93
|
|
|
54
94
|
return termNodeVerified;
|
|
55
95
|
}
|
|
56
96
|
|
|
57
97
|
verifyTypeNode(typeNode, localContext, verifyAhead) {
|
|
58
98
|
const standaloneTypeVerified = verifyStandaloneType(typeNode, localContext, verifyAhead),
|
|
59
|
-
|
|
99
|
+
typeNodeVerified = standaloneTypeVerified; ///
|
|
60
100
|
|
|
61
101
|
return typeNodeVerified;
|
|
62
102
|
}
|
|
@@ -8,7 +8,8 @@ import { verifyStandaloneType } from "../../verify/type";
|
|
|
8
8
|
import { verifyStandaloneTerm } from "../../verify/term";
|
|
9
9
|
|
|
10
10
|
const termNodeQuery = nodeQuery("/term!"),
|
|
11
|
-
typeNodeQuery = nodeQuery("/type!")
|
|
11
|
+
typeNodeQuery = nodeQuery("/type!"),
|
|
12
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
12
13
|
|
|
13
14
|
class TermAsConstructorNodeVerifier extends NodeVerifier {
|
|
14
15
|
verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead) {
|
|
@@ -17,19 +18,49 @@ class TermAsConstructorNodeVerifier extends NodeVerifier {
|
|
|
17
18
|
const nodeQueryMaps = [
|
|
18
19
|
{
|
|
19
20
|
nodeQuery: termNodeQuery,
|
|
20
|
-
verifyNode:
|
|
21
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
22
|
+
let nonTerminalNodeVerified;
|
|
23
|
+
|
|
24
|
+
const termNode = node, ///
|
|
25
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
26
|
+
|
|
27
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
28
|
+
|
|
29
|
+
return nonTerminalNodeVerified;
|
|
30
|
+
}
|
|
21
31
|
},
|
|
22
32
|
{
|
|
23
33
|
nodeQuery: typeNodeQuery,
|
|
24
|
-
verifyNode:
|
|
34
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
35
|
+
let nonTerminalNodeVerified;
|
|
36
|
+
|
|
37
|
+
const typeNode = node, ///
|
|
38
|
+
typeNodeVerified = this.verifyTypeNode(typeNode, localMetaContext, verifyAhead);
|
|
39
|
+
|
|
40
|
+
nonTerminalNodeVerified = typeNodeVerified; ///
|
|
41
|
+
|
|
42
|
+
return nonTerminalNodeVerified;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
47
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
48
|
+
let nonTerminalNodeVerified;
|
|
49
|
+
|
|
50
|
+
const nonTerminalNode = node; ///
|
|
51
|
+
|
|
52
|
+
nonTerminalNodeVerified =
|
|
53
|
+
|
|
54
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
55
|
+
|
|
56
|
+
return nonTerminalNodeVerified;
|
|
57
|
+
}
|
|
25
58
|
}
|
|
26
59
|
];
|
|
27
60
|
|
|
28
61
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localContext, verifyAhead);
|
|
29
62
|
|
|
30
|
-
nonTerminalNodeVerified = nodeVerified
|
|
31
|
-
true :
|
|
32
|
-
super.verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead);
|
|
63
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
33
64
|
|
|
34
65
|
return nonTerminalNodeVerified;
|
|
35
66
|
}
|
|
@@ -6,7 +6,8 @@ import verifyTermAgainstTerm from "../../verify/termAgainstTerm";
|
|
|
6
6
|
import { nodeQuery } from "../../utilities/query";
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
|
-
const termNodeQuery = nodeQuery("/term!")
|
|
9
|
+
const termNodeQuery = nodeQuery("/term!"),
|
|
10
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
10
11
|
|
|
11
12
|
class EqualityNodesVerifier extends NodesVerifier {
|
|
12
13
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
|
|
@@ -27,6 +28,22 @@ class EqualityNodesVerifier extends NodesVerifier {
|
|
|
27
28
|
|
|
28
29
|
nonTerminalNodeVerified = termNodeVerifiedAgainstTermNode; ///
|
|
29
30
|
|
|
31
|
+
return nonTerminalNodeVerified;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
36
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
37
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
38
|
+
let nonTerminalNodeVerified;
|
|
39
|
+
|
|
40
|
+
const nonTerminalNodeA = nodeA, ///
|
|
41
|
+
nonTerminalNodeB = nodeB; ///
|
|
42
|
+
|
|
43
|
+
nonTerminalNodeVerified =
|
|
44
|
+
|
|
45
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
46
|
+
|
|
30
47
|
return nonTerminalNodeVerified;
|
|
31
48
|
}
|
|
32
49
|
}
|
|
@@ -34,9 +51,7 @@ class EqualityNodesVerifier extends NodesVerifier {
|
|
|
34
51
|
|
|
35
52
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
36
53
|
|
|
37
|
-
nonTerminalNodeVerified = nodesVerified
|
|
38
|
-
true :
|
|
39
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
54
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
40
55
|
|
|
41
56
|
return nonTerminalNodeVerified;
|
|
42
57
|
}
|
|
@@ -7,6 +7,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
9
|
const termNodeQuery = nodeQuery("/term!"),
|
|
10
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
10
11
|
termVariableNodeQuery = nodeQuery("/term/variable!");
|
|
11
12
|
|
|
12
13
|
class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
@@ -28,6 +29,22 @@ class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
|
28
29
|
|
|
29
30
|
nonTerminalNodeVerified = termVariableNodeVerifiedAgainstTermNode; ///
|
|
30
31
|
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
39
|
+
let nonTerminalNodeVerified;
|
|
40
|
+
|
|
41
|
+
const nonTerminalNodeA = nodeA, ///
|
|
42
|
+
nonTerminalNodeB = nodeB; ///
|
|
43
|
+
|
|
44
|
+
nonTerminalNodeVerified =
|
|
45
|
+
|
|
46
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
47
|
+
|
|
31
48
|
return nonTerminalNodeVerified;
|
|
32
49
|
}
|
|
33
50
|
}
|
|
@@ -35,9 +52,7 @@ class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
|
35
52
|
|
|
36
53
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
37
54
|
|
|
38
|
-
nonTerminalNodeVerified = nodesVerified
|
|
39
|
-
true :
|
|
40
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
55
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
41
56
|
|
|
42
57
|
return nonTerminalNodeVerified;
|
|
43
58
|
}
|
|
@@ -10,6 +10,7 @@ import { verifyNodes } from "../../utilities/verifier";
|
|
|
10
10
|
|
|
11
11
|
const termNodeQuery = nodeQuery("/term!"),
|
|
12
12
|
statementNodeQuery = nodeQuery("/statement!"),
|
|
13
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
13
14
|
termVariableNodeQuery = nodeQuery("/term/variable!"),
|
|
14
15
|
metastatementNodeQuery = nodeQuery("/metastatement!"),
|
|
15
16
|
metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!"),
|
|
@@ -88,6 +89,22 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
88
89
|
|
|
89
90
|
nonTerminalNodeVerified = termVariableNodeVerifiedAgainstTermNode; ///
|
|
90
91
|
|
|
92
|
+
return nonTerminalNodeVerified;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
97
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
98
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
99
|
+
let nonTerminalNodeVerified;
|
|
100
|
+
|
|
101
|
+
const nonTerminalNodeA = nodeA, ///
|
|
102
|
+
nonTerminalNodeB = nodeB; ///
|
|
103
|
+
|
|
104
|
+
nonTerminalNodeVerified =
|
|
105
|
+
|
|
106
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
107
|
+
|
|
91
108
|
return nonTerminalNodeVerified;
|
|
92
109
|
}
|
|
93
110
|
}
|
|
@@ -95,9 +112,7 @@ class IntrinsicLevelAgainstMetaLevelNodesVerifier extends NodesVerifier {
|
|
|
95
112
|
|
|
96
113
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
97
114
|
|
|
98
|
-
nonTerminalNodeVerified = nodesVerified
|
|
99
|
-
true :
|
|
100
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
115
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
101
116
|
|
|
102
117
|
return nonTerminalNodeVerified;
|
|
103
118
|
}
|
|
@@ -6,7 +6,8 @@ import verifyMetavariableAgainstMetastatement from "../../verify/metavariableAga
|
|
|
6
6
|
import { nodeQuery } from "../../utilities/query";
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const nonTerminalNodeQuery = nodeQuery("/*"),
|
|
10
|
+
metastatementNodeQuery = nodeQuery("/metastatement!"),
|
|
10
11
|
metastatementMetavariableNodeQuery = nodeQuery("/metastatement/metavariable!");
|
|
11
12
|
|
|
12
13
|
class MetaLevelNodesVerifier extends NodesVerifier {
|
|
@@ -28,6 +29,22 @@ class MetaLevelNodesVerifier extends NodesVerifier {
|
|
|
28
29
|
|
|
29
30
|
nonTerminalNodeVerified = metastatementMetavariableNodeVerifiedAgainstMetastatementNode; ///
|
|
30
31
|
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
39
|
+
let nonTerminalNodeVerified;
|
|
40
|
+
|
|
41
|
+
const nonTerminalNodeA = nodeA, ///
|
|
42
|
+
nonTerminalNodeB = nodeB; ///
|
|
43
|
+
|
|
44
|
+
nonTerminalNodeVerified =
|
|
45
|
+
|
|
46
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
47
|
+
|
|
31
48
|
return nonTerminalNodeVerified;
|
|
32
49
|
}
|
|
33
50
|
}
|
|
@@ -35,9 +52,7 @@ class MetaLevelNodesVerifier extends NodesVerifier {
|
|
|
35
52
|
|
|
36
53
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
37
54
|
|
|
38
|
-
nonTerminalNodeVerified = nodesVerified
|
|
39
|
-
true :
|
|
40
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
55
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
41
56
|
|
|
42
57
|
return nonTerminalNodeVerified;
|
|
43
58
|
}
|
|
@@ -8,6 +8,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
8
8
|
import { verifyNodes } from "../../utilities/verifier";
|
|
9
9
|
|
|
10
10
|
const argumentNodeQuery = nodeQuery("/argument!"),
|
|
11
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
11
12
|
metaArgumentMetaTypeNodeQuery = nodeQuery("/metaArgument/metaType!"),
|
|
12
13
|
metaArgumentStatementNodeQuery = nodeQuery("/metaArgument/statement!");
|
|
13
14
|
|
|
@@ -47,6 +48,22 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
|
|
|
47
48
|
|
|
48
49
|
nonTerminalNodeVerified = argumentNodeVerifiedAgainstArgumentNode; ///
|
|
49
50
|
|
|
51
|
+
return nonTerminalNodeVerified;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
56
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
57
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
58
|
+
let nonTerminalNodeVerified;
|
|
59
|
+
|
|
60
|
+
const nonTerminalNodeA = nodeA, ///
|
|
61
|
+
nonTerminalNodeB = nodeB; ///
|
|
62
|
+
|
|
63
|
+
nonTerminalNodeVerified =
|
|
64
|
+
|
|
65
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
66
|
+
|
|
50
67
|
return nonTerminalNodeVerified;
|
|
51
68
|
}
|
|
52
69
|
}
|
|
@@ -54,9 +71,7 @@ class StatementAgainstCombinatorNodesVerifier extends NodesVerifier {
|
|
|
54
71
|
|
|
55
72
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
56
73
|
|
|
57
|
-
nonTerminalNodeVerified = nodesVerified
|
|
58
|
-
true :
|
|
59
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
74
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
60
75
|
|
|
61
76
|
return nonTerminalNodeVerified;
|
|
62
77
|
}
|
|
@@ -7,7 +7,8 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
9
|
const termNodeQuery = nodeQuery("/argument/term!"),
|
|
10
|
-
typeNodeQuery = nodeQuery("/argument/type!")
|
|
10
|
+
typeNodeQuery = nodeQuery("/argument/type!"),
|
|
11
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
11
12
|
|
|
12
13
|
class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
13
14
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
|
|
@@ -28,6 +29,22 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
|
28
29
|
|
|
29
30
|
nonTerminalNodeVerified = termNodeVerifiedAgainstTypeNode; ///
|
|
30
31
|
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
39
|
+
let nonTerminalNodeVerified;
|
|
40
|
+
|
|
41
|
+
const nonTerminalNodeA = nodeA, ///
|
|
42
|
+
nonTerminalNodeB = nodeB; ///
|
|
43
|
+
|
|
44
|
+
nonTerminalNodeVerified =
|
|
45
|
+
|
|
46
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
47
|
+
|
|
31
48
|
return nonTerminalNodeVerified;
|
|
32
49
|
}
|
|
33
50
|
}
|
|
@@ -35,9 +52,7 @@ class TermAgainstConstructorNodesVerifier extends NodesVerifier {
|
|
|
35
52
|
|
|
36
53
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
37
54
|
|
|
38
|
-
nonTerminalNodeVerified = nodesVerified
|
|
39
|
-
true :
|
|
40
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
55
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
41
56
|
|
|
42
57
|
return nonTerminalNodeVerified;
|
|
43
58
|
}
|
|
@@ -4,7 +4,7 @@ import { isAssertionNegated } from "../utilities/verify";
|
|
|
4
4
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
5
5
|
|
|
6
6
|
const variableNodeQuery = nodeQuery("/containedAssertion/term/variable!"),
|
|
7
|
-
metastatementVariableNodesQuery = nodesQuery("/containedAssertion/
|
|
7
|
+
metastatementVariableNodesQuery = nodesQuery("/containedAssertion/statement//variable");
|
|
8
8
|
|
|
9
9
|
export default function verifyContainedAssertion(containedAssertionNode) {
|
|
10
10
|
let containedAssertionVerified = false;
|
package/src/verify/premise.js
CHANGED
|
@@ -33,11 +33,7 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, assignm
|
|
|
33
33
|
if (qualifiedStatementVerified) {
|
|
34
34
|
const derived = false,
|
|
35
35
|
statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
36
|
-
statementVerified = verifyStatement(statementNode, assignments, derived, localContext
|
|
37
|
-
const verifiedAhead = true;
|
|
38
|
-
|
|
39
|
-
return verifiedAhead;
|
|
40
|
-
});
|
|
36
|
+
statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
|
|
41
37
|
|
|
42
38
|
qualifiedStatementVerified = statementVerified; ///
|
|
43
39
|
}
|
|
@@ -169,7 +165,7 @@ function verifyQualifiedStatementAAgainstConjecture(qualifiedStatementNode, meta
|
|
|
169
165
|
return qualifiedStatementVerifiedAgainstConjecture;
|
|
170
166
|
}
|
|
171
167
|
|
|
172
|
-
function verifyStatement(statementNode, assignments, derived, localContext
|
|
168
|
+
function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
173
169
|
let statementVerified;
|
|
174
170
|
|
|
175
171
|
const statementString = localContext.nodeAsString(statementNode);
|
|
@@ -182,7 +178,7 @@ function verifyStatement(statementNode, assignments, derived, localContext, veri
|
|
|
182
178
|
];
|
|
183
179
|
|
|
184
180
|
verifyStatementFunctions.some((verifyStatementFunction) => {
|
|
185
|
-
const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext
|
|
181
|
+
const statementVerified = verifyStatementFunction(statementNode, assignments, derived, localContext);
|
|
186
182
|
|
|
187
183
|
if (statementVerified) {
|
|
188
184
|
return true;
|
|
@@ -21,11 +21,7 @@ export default function verifyUnqualifiedStatement(unqualifiedStatementNode, ass
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
if (!unqualifiedStatementVerified) {
|
|
24
|
-
const statementVerified = verifyStatement(statementNode, assignments, derived, localContext
|
|
25
|
-
const verifiedAhead = true;
|
|
26
|
-
|
|
27
|
-
return verifiedAhead;
|
|
28
|
-
});
|
|
24
|
+
const statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
|
|
29
25
|
|
|
30
26
|
unqualifiedStatementVerified = statementVerified; ///
|
|
31
27
|
}
|