occam-verify-cli 0.0.986 → 0.0.988

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.
@@ -90,9 +90,8 @@ export default class TermForVariableSubstitution extends Substitution {
90
90
  const termNodeB = this.termNode, ///
91
91
  termStringB = localContextB.nodeAsString(termNodeB),
92
92
  variableNodeA = this.variableNode, ///
93
- variableStringA = localContextA.nodeAsString(variableNodeA);
94
-
95
- const string = `[${termStringB} for ${variableStringA}]`;
93
+ variableStringA = localContextA.nodeAsString(variableNodeA),
94
+ string = `[${termStringB} for ${variableStringA}]`;
96
95
 
97
96
  return string;
98
97
  }
@@ -2,12 +2,14 @@
2
2
 
3
3
  import Unifier from "../unifier";
4
4
  import unifyTermWithType from "../unify/termWithType";
5
+ import unifyFrameWithMetaType from "../unify/frameWithMetaType";
5
6
  import unifyStatementWithMetaType from "../unify/statementWithMetaType";
6
7
 
7
8
  import { nodeQuery } from "../utilities/query";
8
9
 
9
10
  const termNodeQuery = nodeQuery("/term!"),
10
11
  typeNodeQuery = nodeQuery("/type!"),
12
+ frameNodeQuery = nodeQuery("/frame!"),
11
13
  metaTypeNodeQuery = nodeQuery("/metaType!"),
12
14
  statementNodeQuery = nodeQuery("/statement!");
13
15
 
@@ -36,6 +38,17 @@ class StatementWithCombinatorUnifier extends Unifier {
36
38
  return statementUnifiedWithMetaType;
37
39
  }
38
40
  },
41
+ {
42
+ nodeQueryA: frameNodeQuery,
43
+ nodeQueryB: metaTypeNodeQuery,
44
+ unify: (frameNodeA, metaTypeNodeB, assignments, stated, localContext) => {
45
+ const metaTypeNode = metaTypeNodeB, ///
46
+ frameNode = frameNodeA, ///
47
+ frameUnifiedWithMetaType = unifyFrameWithMetaType(frameNode, metaTypeNode, assignments, stated, localContext);
48
+
49
+ return frameUnifiedWithMetaType;
50
+ }
51
+ },
39
52
  {
40
53
  nodeQueryA: termNodeQuery,
41
54
  nodeQueryB: typeNodeQuery,
@@ -5,6 +5,11 @@ import metaLevelUnifier from "../unifier/metaLevel";
5
5
  export default function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(complexSubstitutionStatementNode, simpleSubstitutionStatementNode, substitutions, localContextA, localContextB) {
6
6
  let complexSubstitutionStatementWithSimpleSubstitutionStatement;
7
7
 
8
+ const complexSubstitutionStatementString = localContextB.nodeAsString(complexSubstitutionStatementNode),
9
+ simpleSubstitutionStatementString = localContextB.nodeAsString(simpleSubstitutionStatementNode);
10
+
11
+ localContextB.trace(`Unifying the complex substitution's '${complexSubstitutionStatementString}' statement with the simple substitution's '${simpleSubstitutionStatementString}' statement...`, simpleSubstitutionStatementNode);
12
+
8
13
  const nodeA = complexSubstitutionStatementNode, ///
9
14
  nodeB = simpleSubstitutionStatementNode; ///
10
15
 
@@ -14,5 +19,9 @@ export default function unifyComplexSubstitutionStatementWithSimpleSubstitutionS
14
19
 
15
20
  complexSubstitutionStatementWithSimpleSubstitutionStatement = unified; ///
16
21
 
22
+ if (complexSubstitutionStatementWithSimpleSubstitutionStatement) {
23
+ localContextB.trace(`...unified the complex substitution's '${complexSubstitutionStatementString}' statement with the simple substitution's '${simpleSubstitutionStatementString}' statement.`, simpleSubstitutionStatementNode);
24
+ }
25
+
17
26
  return complexSubstitutionStatementWithSimpleSubstitutionStatement;
18
27
  }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ import verifyFrameGivenMetaType from "../verify/frameGivenMetaType";
4
+
5
+ export default function unifyFrameWithMetaType(frameNode, metaTypeNode, assignments, stated, localContext) {
6
+ let frameUnifiedWithMetaType;
7
+
8
+ const metaType = localContext.findMetaTypeByMetaTypeNode(metaTypeNode),
9
+ frameVerifiedGivenMetaType = verifyFrameGivenMetaType(frameNode, metaType, assignments, stated, localContext);
10
+
11
+ frameUnifiedWithMetaType = frameVerifiedGivenMetaType; ///
12
+
13
+ return frameUnifiedWithMetaType;
14
+ }
@@ -5,8 +5,8 @@ import metaLevelVerifier from "../../verifier/metaLevel";
5
5
  import { isAssertionNegated } from "../../utilities/assertion";
6
6
  import { nodeQuery, nodesQuery } from "../../utilities/query";
7
7
 
8
- const variableNodeQuery = nodeQuery("/containedAssertion/term/variable!"),
9
- metavariableNodeQuery = nodeQuery("/containedAssertion/frame/metavariable!"),
8
+ const termVariableNodeQuery = nodeQuery("/containedAssertion/term/variable!"),
9
+ frameMetavariableNodeQuery = nodeQuery("/containedAssertion/frame/metavariable!"),
10
10
  statementVariableNodesQuery = nodesQuery("/containedAssertion/statement//variable"),
11
11
  statementMetavariableNodesQuery = nodesQuery("/containedAssertion/statement//metavariable");
12
12
 
@@ -56,56 +56,53 @@ function verifyDerivedContainedAssertion(containedAssertionNode, assignments, st
56
56
 
57
57
  localContext.trace(`Verifying the '${containedAssertionString}' derived contained assertion...`, containedAssertionNode);
58
58
 
59
- const metavariableNode = metavariableNodeQuery(containedAssertionNode);
60
-
61
- if (metavariableNode !== null) {
62
- const assertionNegated = isAssertionNegated(containedAssertionNode),
63
- variableNode = variableNodeQuery(containedAssertionNode),
64
- negated = assertionNegated; ///
65
-
66
- if (false) {
67
- ///
68
- } else if (metavariableNode !== null) {
69
- const statementMetavariableNodes = statementMetavariableNodesQuery(containedAssertionNode),
70
- variableNodeMatchesStatementMetavariableNode = statementMetavariableNodes.some((statementMetavariableNode) => {
71
- const variableNodeMatchesStatementMetavariableNode = metavariableNode.match(statementMetavariableNode);
72
-
73
- if (variableNodeMatchesStatementMetavariableNode) {
74
- return true;
75
- }
76
- });
77
-
78
- if (!negated) {
79
- if (variableNodeMatchesStatementMetavariableNode) {
80
- derivedContainedAssertionVerified = true;
81
- }
59
+ const assertionNegated = isAssertionNegated(containedAssertionNode),
60
+ frameMetavariableNode = frameMetavariableNodeQuery(containedAssertionNode),
61
+ termVariableNode = termVariableNodeQuery(containedAssertionNode),
62
+ negated = assertionNegated; ///
63
+
64
+ if (false) {
65
+ ///
66
+ } else if (frameMetavariableNode !== null) {
67
+ const statementMetavariableNodes = statementMetavariableNodesQuery(containedAssertionNode),
68
+ frameMetavariableNodeMatchesStatementMetavariableNode = statementMetavariableNodes.some((statementMetavariableNode) => {
69
+ const frameMetavariableNodeMatchesStatementMetavariableNode = frameMetavariableNode.match(statementMetavariableNode);
70
+
71
+ if (frameMetavariableNodeMatchesStatementMetavariableNode) {
72
+ return true;
73
+ }
74
+ });
75
+
76
+ if (!negated) {
77
+ if (frameMetavariableNodeMatchesStatementMetavariableNode) {
78
+ derivedContainedAssertionVerified = true;
82
79
  }
80
+ }
83
81
 
84
- if (negated) {
85
- if (!variableNodeMatchesStatementMetavariableNode) {
86
- derivedContainedAssertionVerified = true;
87
- }
82
+ if (negated) {
83
+ if (!frameMetavariableNodeMatchesStatementMetavariableNode) {
84
+ derivedContainedAssertionVerified = true;
88
85
  }
89
- } else if (variableNode !== null) {
90
- const statementVariableNodes = statementVariableNodesQuery(containedAssertionNode),
91
- variableNodeMatchesStatementVariableNode = statementVariableNodes.some((statementVariableNode) => {
92
- const variableNodeMatchesStatementVariableNode = variableNode.match(statementVariableNode);
93
-
94
- if (variableNodeMatchesStatementVariableNode) {
95
- return true;
96
- }
97
- });
98
-
99
- if (!negated) {
100
- if (variableNodeMatchesStatementVariableNode) {
101
- derivedContainedAssertionVerified = true;
102
- }
86
+ }
87
+ } else if (termVariableNode !== null) {
88
+ const statementVariableNodes = statementVariableNodesQuery(containedAssertionNode),
89
+ termVariableNodeMatchesStatementVariableNode = statementVariableNodes.some((statementVariableNode) => {
90
+ const termVariableNodeMatchesStatementVariableNode = termVariableNode.match(statementVariableNode);
91
+
92
+ if (termVariableNodeMatchesStatementVariableNode) {
93
+ return true;
94
+ }
95
+ });
96
+
97
+ if (!negated) {
98
+ if (termVariableNodeMatchesStatementVariableNode) {
99
+ derivedContainedAssertionVerified = true;
103
100
  }
101
+ }
104
102
 
105
- if (negated) {
106
- if (!variableNodeMatchesStatementVariableNode) {
107
- derivedContainedAssertionVerified = true;
108
- }
103
+ if (negated) {
104
+ if (!termVariableNodeMatchesStatementVariableNode) {
105
+ derivedContainedAssertionVerified = true;
109
106
  }
110
107
  }
111
108
  }
@@ -55,43 +55,40 @@ function verifyDerivedDefinedAssertion(definedAssertionNode, assignments, stated
55
55
 
56
56
  localContext.trace(`Verifying the '${definedAssertionString}' derived defined assertion...`, definedAssertionNode);
57
57
 
58
- const metavariableNode = metavariableNodeQuery(definedAssertionNode);
59
-
60
- if (metavariableNode !== null) {
61
- const assertionNegated = isAssertionNegated(definedAssertionNode),
62
- variableNode = variableNodeQuery(definedAssertionNode);
63
-
64
- if (false) {
65
- ///
66
- } else if (metavariableNode !== null) {
67
- const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
68
- metavariableDefinedByMetavariableName = localContext.isMetavariableDefinedByMetavariableName(metavariableName);
69
-
70
- if (!assertionNegated) {
71
- if (metavariableDefinedByMetavariableName) {
72
- derivedDefinedAssertionVerified = true;
73
- }
58
+ const assertionNegated = isAssertionNegated(definedAssertionNode),
59
+ metavariableNode = metavariableNodeQuery(definedAssertionNode),
60
+ variableNode = variableNodeQuery(definedAssertionNode);
61
+
62
+ if (false) {
63
+ ///
64
+ } else if (metavariableNode !== null) {
65
+ const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
66
+ metavariableDefinedByMetavariableName = localContext.isMetavariableDefinedByMetavariableName(metavariableName);
67
+
68
+ if (!assertionNegated) {
69
+ if (metavariableDefinedByMetavariableName) {
70
+ derivedDefinedAssertionVerified = true;
74
71
  }
72
+ }
75
73
 
76
- if (assertionNegated) {
77
- if (!metavariableDefinedByMetavariableName) {
78
- derivedDefinedAssertionVerified = true;
79
- }
74
+ if (assertionNegated) {
75
+ if (!metavariableDefinedByMetavariableName) {
76
+ derivedDefinedAssertionVerified = true;
80
77
  }
81
- } else if (variableNode !== null) {
82
- const variable = localContext.findVariableByVariableNode(variableNode),
83
- variableDefined = localContext.isVariableDefined(variable);
84
-
85
- if (!assertionNegated) {
86
- if (variableDefined) {
87
- derivedDefinedAssertionVerified = true;
88
- }
78
+ }
79
+ } else if (variableNode !== null) {
80
+ const variable = localContext.findVariableByVariableNode(variableNode),
81
+ variableDefined = localContext.isVariableDefined(variable);
82
+
83
+ if (!assertionNegated) {
84
+ if (variableDefined) {
85
+ derivedDefinedAssertionVerified = true;
89
86
  }
87
+ }
90
88
 
91
- if (assertionNegated) {
92
- if (!variableDefined) {
93
- derivedDefinedAssertionVerified = true;
94
- }
89
+ if (assertionNegated) {
90
+ if (!variableDefined) {
91
+ derivedDefinedAssertionVerified = true;
95
92
  }
96
93
  }
97
94
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import shim from "../shim";
3
4
  import Frame from "../frame";
4
5
  import frameMetaType from "../metaType/frame";
5
6
  import verifyDeclaration from "../verify/declaration";
@@ -17,7 +18,7 @@ const verifyFrameFunctions = [
17
18
  verifyStatedFrame
18
19
  ];
19
20
 
20
- export default function verifyFrame(frameNode, frames, stated, localContext) {
21
+ function verifyFrame(frameNode, frames, stated, localContext) {
21
22
  let frameVerified;
22
23
 
23
24
  const frameString = localContext.nodeAsString(frameNode);
@@ -39,6 +40,12 @@ export default function verifyFrame(frameNode, frames, stated, localContext) {
39
40
  return frameVerified;
40
41
  }
41
42
 
43
+ Object.assign(shim, {
44
+ verifyFrame
45
+ });
46
+
47
+ export default verifyFrame;
48
+
42
49
  function verifyDerivedFrame(frameNode, frames, stated, localContext) {
43
50
  let derivedFrameVerified;
44
51
 
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ import shim from "../shim";
4
+
5
+ import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
6
+
7
+ export default function verifyFrameGivenMetaType(frameNode, metaType, assignments, stated, localContext) {
8
+ let frameVerifiedGivenMetaType;
9
+
10
+ const metaTypeName = metaType.getName();
11
+
12
+ switch (metaTypeName) {
13
+ case FRAME_META_TYPE_NAME: {
14
+ const { verifyFrame } = shim,
15
+ frames = [],
16
+ frameVerified = verifyFrame(frameNode, frames, stated, localContext)
17
+
18
+ frameVerifiedGivenMetaType = frameVerified; ///
19
+
20
+ break;
21
+ }
22
+
23
+ default: {
24
+ debugger
25
+
26
+ break;
27
+ }
28
+ }
29
+
30
+ return frameVerifiedGivenMetaType;
31
+ }
@@ -16,6 +16,8 @@ export default function verifyStatementGivenMetaType(statementNode, metaType, as
16
16
  switch (metaTypeName) {
17
17
  case FRAME_META_TYPE_NAME:
18
18
  case REFERENCE_META_TYPE_NAME: {
19
+ debugger
20
+
19
21
  statementVerifiedGivenMetaType = false;
20
22
 
21
23
  const metavariableNode = metavariableNodeQuery(statementNode);