occam-verify-cli 0.0.1119 → 0.0.1121

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.
@@ -9,9 +9,11 @@ import { nodeQuery } from "../utilities/query";
9
9
 
10
10
  const termNodeQuery = nodeQuery("/term"),
11
11
  frameNodeQuery = nodeQuery("/frame"),
12
+ referenceNodeQuery = nodeQuery("/reference"),
12
13
  statementNodeQuery = nodeQuery("/statement"),
13
14
  termVariableNodeQuery = nodeQuery("/term/variable!"),
14
15
  frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
16
+ referenceMetavariableNodeQuery = nodeQuery("/reference/metavariable!"),
15
17
  statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!");
16
18
 
17
19
  class MetaLevelUnifier extends Unifier {
@@ -68,6 +70,31 @@ class MetaLevelUnifier extends Unifier {
68
70
  return statementUnified;
69
71
  }
70
72
  },
73
+ {
74
+ generalNodeQuery: referenceMetavariableNodeQuery,
75
+ specificNodeQuery: referenceNodeQuery,
76
+ unify: (generalReferenceMetavariableNode, specificReferenceNode, substitutions, generalContext, specificContext) => {
77
+ let referenceUnified;
78
+
79
+ const { Reference, Metavariable } = dom,
80
+ referenceNode = specificReferenceNode, ///
81
+ metavariableNode = generalReferenceMetavariableNode; ///
82
+
83
+ let context;
84
+
85
+ context = generalContext; ///
86
+
87
+ const metavariable = Metavariable.fromMetavariableNode(metavariableNode, context);
88
+
89
+ context = specificContext; ///
90
+
91
+ const reference = Reference.fromReferenceNode(referenceNode, context);
92
+
93
+ referenceUnified = metavariable.unifyReference(reference, substitutions, generalContext, specificContext);
94
+
95
+ return referenceUnified;
96
+ }
97
+ },
71
98
  {
72
99
  generalNodeQuery: frameMetavariableNodeQuery,
73
100
  specificNodeQuery: frameNodeQuery,
@@ -34,7 +34,7 @@ class MetavariableUnifier extends Unifier {
34
34
  termNode = specificTermNode, ///
35
35
  typeName = typeNameFromTypeNode(typeNode),
36
36
  type = generalContext.findTypeByTypeName(typeName),
37
- context = generalContext, ///
37
+ context = specificContext, ///
38
38
  term = Term.fromTermNode(termNode, context),
39
39
  termVerifiedGivenType = term.verifyGivenType(type, generalContext, specificContext);
40
40
 
@@ -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,24 @@
3
3
  import dom from "../dom";
4
4
  import LocalContext from "../context/local";
5
5
 
6
- import { bracketedTermChildNodeFromTermNode, bracketedStatementChildNodeFromStatementNode } from "../utilities/brackets";
6
+ export function metavariableFromFrame(frame, context) {
7
+ context = contextFromFrame(frame, context); ///
7
8
 
8
- export function stripBracketsFromTerm(term, context) {
9
- const termNode = term.getNode(),
10
- bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
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
- }
9
+ const { Metavariable } = dom,
10
+ frameNode = frame.getNode(),
11
+ metavariable = Metavariable.fromFrameNode(frameNode, context);
20
12
 
21
- return term;
13
+ return metavariable;
22
14
  }
23
15
 
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); ///
16
+ export function metavariableFromReference(reference, context) {
17
+ context = contextFromReference(reference, context); ///
30
18
 
31
- const { Statement } = dom,
32
- statementNode = bracketedStatementChildNode; ///
33
-
34
- statement = Statement.fromStatementNode(statementNode, context);
35
- }
19
+ const { Metavariable } = dom,
20
+ referenceNode = reference.getNode(),
21
+ metavariable = Metavariable.fromReferenceNode(referenceNode, context);
36
22
 
37
- return statement;
23
+ return metavariable;
38
24
  }
39
25
 
40
26
  export function equalityFromStatement(statement, context) {
@@ -107,6 +93,26 @@ export function containedAssertionFromStatement(statement, context) {
107
93
  return containedAssertion;
108
94
  }
109
95
 
96
+ function contextFromFrame(frame, context) {
97
+ const frameTokens = frame.getTokens(),
98
+ tokens = frameTokens, ///
99
+ localContext = LocalContext.fromContextAndTokens(context, tokens);
100
+
101
+ context = localContext; ///
102
+
103
+ return context;
104
+ }
105
+
106
+ function contextFromReference(reference, context) {
107
+ const referenceTokens = reference.getTokens(),
108
+ tokens = referenceTokens, ///
109
+ localContext = LocalContext.fromContextAndTokens(context, tokens);
110
+
111
+ context = localContext; ///
112
+
113
+ return context;
114
+ }
115
+
110
116
  function contextFromStatement(statement, context) {
111
117
  const statementTokens = statement.getTokens(),
112
118
  tokens = statementTokens, ///
@@ -115,4 +121,4 @@ function contextFromStatement(statement, context) {
115
121
  context = localContext; ///
116
122
 
117
123
  return context;
118
- }
124
+ }