occam-verify-cli 0.0.1120 → 0.0.1122
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/dom/metavariable.js +115 -41
- package/lib/dom/reference.js +8 -1
- package/lib/dom/statement.js +6 -1
- package/lib/dom/term.js +4 -3
- package/lib/mixins/proofStep/unify.js +15 -1
- package/lib/nodeAndTokens/substitution/reference.js +158 -0
- package/lib/substitution/reference.js +164 -0
- package/lib/substitution/statement.js +5 -5
- package/lib/substitution/term.js +2 -3
- package/lib/substitution.js +15 -1
- package/lib/unifier/intrinsicLevel.js +145 -0
- package/lib/unifier/metaLevel.js +17 -2
- package/lib/unifier/metavariable.js +2 -2
- package/lib/utilities/brackets.js +31 -1
- package/lib/utilities/unification.js +13 -1
- package/lib/utilities/verification.js +13 -25
- package/package.json +2 -2
- package/src/dom/metavariable.js +162 -42
- package/src/dom/reference.js +10 -0
- package/src/dom/statement.js +8 -0
- package/src/dom/term.js +3 -3
- package/src/mixins/proofStep/unify.js +22 -1
- package/src/nodeAndTokens/substitution/reference.js +18 -0
- package/src/substitution/reference.js +74 -0
- package/src/substitution/statement.js +1 -1
- package/src/substitution/term.js +1 -1
- package/src/substitution.js +12 -0
- package/src/unifier/intrinsicLevel.js +55 -0
- package/src/unifier/metaLevel.js +27 -0
- package/src/unifier/metavariable.js +1 -1
- package/src/utilities/brackets.js +42 -0
- package/src/utilities/unification.js +18 -0
- package/src/utilities/verification.js +17 -31
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import dom from "../dom";
|
|
4
|
+
import LocalContext from "../context/local";
|
|
3
5
|
import combinatorBracketedContext from "../context/bracketed/combinator";
|
|
4
6
|
import constructorBracketedContext from "../context/bracketed/constructor";
|
|
5
7
|
|
|
@@ -9,6 +11,36 @@ import { BRACKETED_TERM_DEPTH, BRACKETED_STATEMENT_DEPTH } from "../constants";
|
|
|
9
11
|
const bracketedTermChildNodeQuery = nodeQuery("/term/argument/term"),
|
|
10
12
|
bracketedStatementChildNodeQuery = nodeQuery("/statement/metaArgument/statement");
|
|
11
13
|
|
|
14
|
+
export function stripBracketsFromTerm(term, context) {
|
|
15
|
+
const termNode = term.getNode(),
|
|
16
|
+
bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
17
|
+
|
|
18
|
+
if (bracketedTermChildNode !== null) {
|
|
19
|
+
const { Term } = dom,
|
|
20
|
+
termNode = bracketedTermChildNode; ///
|
|
21
|
+
|
|
22
|
+
term = Term.fromStatementNode(termNode, context);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return term;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function stripBracketsFromStatement(statement, context) {
|
|
29
|
+
const statementNode = statement.getNode(),
|
|
30
|
+
bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
|
|
31
|
+
|
|
32
|
+
if (bracketedStatementChildNode !== null) {
|
|
33
|
+
context = contextFromStatement(statement, context); ///
|
|
34
|
+
|
|
35
|
+
const { Statement } = dom,
|
|
36
|
+
statementNode = bracketedStatementChildNode; ///
|
|
37
|
+
|
|
38
|
+
statement = Statement.fromStatementNode(statementNode, context);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return statement;
|
|
42
|
+
}
|
|
43
|
+
|
|
12
44
|
export function stripBracketsFromTermNode(termNode) {
|
|
13
45
|
const bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
14
46
|
|
|
@@ -56,3 +88,13 @@ export function bracketedStatementChildNodeFromStatementNode(statementNode) {
|
|
|
56
88
|
|
|
57
89
|
return bracketedStatementChildNode;
|
|
58
90
|
}
|
|
91
|
+
|
|
92
|
+
function contextFromStatement(statement, context) {
|
|
93
|
+
const statementTokens = statement.getTokens(),
|
|
94
|
+
tokens = statementTokens, ///
|
|
95
|
+
localContext = LocalContext.fromContextAndTokens(context, tokens);
|
|
96
|
+
|
|
97
|
+
context = localContext; ///
|
|
98
|
+
|
|
99
|
+
return context;
|
|
100
|
+
}
|
|
@@ -5,6 +5,7 @@ import labelUnifier from "../unifier/label";
|
|
|
5
5
|
import equalityUnifier from "../unifier/equality";
|
|
6
6
|
import metaLevelUnifier from "../unifier/metaLevel";
|
|
7
7
|
import metavariableUnifier from "../unifier/metavariable";
|
|
8
|
+
import intrinsicLevelUnifier from "../unifier/intrinsicLevel";
|
|
8
9
|
import termWithConstructorUnifier from "../unifier/termWithConstructor";
|
|
9
10
|
import statementWithCombinatorUnifier from "../unifier/statementWithCombinator";
|
|
10
11
|
|
|
@@ -134,6 +135,23 @@ export function unifyStatementWithCombinator(statement, combinator, assignments,
|
|
|
134
135
|
return statementUnifiedWithCombinator;
|
|
135
136
|
}
|
|
136
137
|
|
|
138
|
+
export function unifyMetavariableIntrinsically(generalMetavariable, specificMetavariable, substitutions, generalContext, specificContext) {
|
|
139
|
+
let metavariableUnifiedIntrinsically;
|
|
140
|
+
|
|
141
|
+
const generalMetavariableNode = generalMetavariable.getNode(),
|
|
142
|
+
specificMetavariableNode = specificMetavariable.getNode(),
|
|
143
|
+
generalMetavariableTokens = generalMetavariable.getTokens(),
|
|
144
|
+
specificMetavariableTokens = specificMetavariable.getTokens();
|
|
145
|
+
|
|
146
|
+
generalContext = contextFromTokens(generalMetavariableTokens, generalContext); ///
|
|
147
|
+
|
|
148
|
+
specificContext = contextFromTokens(specificMetavariableTokens, specificContext); ///
|
|
149
|
+
|
|
150
|
+
metavariableUnifiedIntrinsically = intrinsicLevelUnifier.unify(generalMetavariableNode, specificMetavariableNode, substitutions, generalContext, specificContext);
|
|
151
|
+
|
|
152
|
+
return metavariableUnifiedIntrinsically;
|
|
153
|
+
}
|
|
154
|
+
|
|
137
155
|
function contextFromTokens(tokens, context) {
|
|
138
156
|
const localContext = LocalContext.fromContextAndTokens(context, tokens);
|
|
139
157
|
|
|
@@ -3,38 +3,14 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
export function metavariableFromFrame(frame, context) {
|
|
7
|
+
context = contextFromFrame(frame, context); ///
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (bracketedTermChildNode !== null) {
|
|
13
|
-
context = contextFromTerm(term, context); ///
|
|
14
|
-
|
|
15
|
-
const { Term } = dom,
|
|
16
|
-
termNode = bracketedTermChildNode; ///
|
|
17
|
-
|
|
18
|
-
term = Term.fromStatementNode(termNode, context);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return term;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function stripBracketsFromStatement(statement, context) {
|
|
25
|
-
const statementNode = statement.getNode(),
|
|
26
|
-
bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
|
|
27
|
-
|
|
28
|
-
if (bracketedStatementChildNode !== null) {
|
|
29
|
-
context = contextFromStatement(statement, context); ///
|
|
30
|
-
|
|
31
|
-
const { Statement } = dom,
|
|
32
|
-
statementNode = bracketedStatementChildNode; ///
|
|
33
|
-
|
|
34
|
-
statement = Statement.fromStatementNode(statementNode, context);
|
|
35
|
-
}
|
|
9
|
+
const { Metavariable } = dom,
|
|
10
|
+
frameNode = frame.getNode(),
|
|
11
|
+
metavariable = Metavariable.fromFrameNode(frameNode, context);
|
|
36
12
|
|
|
37
|
-
return
|
|
13
|
+
return metavariable;
|
|
38
14
|
}
|
|
39
15
|
|
|
40
16
|
export function equalityFromStatement(statement, context) {
|
|
@@ -107,6 +83,16 @@ export function containedAssertionFromStatement(statement, context) {
|
|
|
107
83
|
return containedAssertion;
|
|
108
84
|
}
|
|
109
85
|
|
|
86
|
+
function contextFromFrame(frame, context) {
|
|
87
|
+
const frameTokens = frame.getTokens(),
|
|
88
|
+
tokens = frameTokens, ///
|
|
89
|
+
localContext = LocalContext.fromContextAndTokens(context, tokens);
|
|
90
|
+
|
|
91
|
+
context = localContext; ///
|
|
92
|
+
|
|
93
|
+
return context;
|
|
94
|
+
}
|
|
95
|
+
|
|
110
96
|
function contextFromStatement(statement, context) {
|
|
111
97
|
const statementTokens = statement.getTokens(),
|
|
112
98
|
tokens = statementTokens, ///
|
|
@@ -115,4 +101,4 @@ function contextFromStatement(statement, context) {
|
|
|
115
101
|
context = localContext; ///
|
|
116
102
|
|
|
117
103
|
return context;
|
|
118
|
-
}
|
|
104
|
+
}
|