occam-verify-cli 0.0.965 → 0.0.968

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.
@@ -7,12 +7,6 @@ import { nodeQuery } from "../../utilities/query";
7
7
  const statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
8
8
  metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference/metavariable!");
9
9
 
10
- const equalityNodeQuery = nodeQuery("/statement/equality!"),
11
- judgementNodeQuery = nodeQuery("/statement/judgement!"),
12
- typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
13
- definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
14
- containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
15
-
16
10
  const unifyDerivedQualifiedStatementFunctions = [
17
11
  unifyDerivedQualifiedStatementAWithRule,
18
12
  unifyDerivedQualifiedStatementAWithAxiom,
@@ -33,13 +27,9 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, substit
33
27
  statementVerified = verifyStatement(statementNode, assignments, derived, localContext);
34
28
 
35
29
  if (statementVerified) {
36
- if (derived) {
37
- const derivedQualifiedStatementVerified = verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext);
30
+ const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext);
38
31
 
39
- qualifiedStatementVerified = derivedQualifiedStatementVerified; ///
40
- } else {
41
- qualifiedStatementVerified = true;
42
- }
32
+ qualifiedStatementVerified = derivedQualifiedStatementUnified; ///
43
33
  }
44
34
 
45
35
  if (qualifiedStatementVerified) {
@@ -49,56 +39,24 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, substit
49
39
  return qualifiedStatementVerified;
50
40
  }
51
41
 
52
- function verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
53
- let derivedQualifiedStatementVerified = false;
42
+ function unifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
43
+ let derivedQualifiedStatementUnified;
54
44
 
55
45
  const qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
56
46
 
57
- localContext.trace(`Verifying the '${qualifiedStatementString}' derived qualified statement...`, qualifiedStatementNode);
58
-
59
- if (!derivedQualifiedStatementVerified) {
60
- const derivedQualifiedStatementVerifiedTrivially = verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext);
61
-
62
- derivedQualifiedStatementVerified = derivedQualifiedStatementVerifiedTrivially; ///
63
- }
64
-
65
- if (!derivedQualifiedStatementVerified) {
66
- const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some((unifyDerivedQualifiedStatementFunction) => {
67
- const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
47
+ localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement...`, qualifiedStatementNode);
68
48
 
69
- return derivedQualifiedStatementUnified;
70
- });
49
+ derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some((unifyDerivedQualifiedStatementFunction) => {
50
+ const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
71
51
 
72
- derivedQualifiedStatementVerified = derivedQualifiedStatementUnified; ///
73
- }
74
-
75
- if (derivedQualifiedStatementVerified) {
76
- localContext.debug(`...verified the '${qualifiedStatementString}' derived qualified statement.`, qualifiedStatementNode);
77
- }
78
-
79
- return derivedQualifiedStatementVerified;
80
- }
52
+ return derivedQualifiedStatementUnified;
53
+ });
81
54
 
82
- function verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext) {
83
- let derivedQualifiedStatementVerifiedTrivially = false;
84
-
85
- const metavariableNode = metavariableNodeQuery(qualifiedStatementNode);
86
-
87
- if (metavariableNode === null) {
88
- const statementNode = statementNodeQuery(qualifiedStatementNode),
89
- qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
90
-
91
- localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement trivially...`, qualifiedStatementNode);
92
-
93
- debugger
94
-
95
-
96
- if (derivedQualifiedStatementVerifiedTrivially) {
97
- localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement trivially.`, qualifiedStatementNode);
98
- }
55
+ if (derivedQualifiedStatementUnified) {
56
+ localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement.`, qualifiedStatementNode);
99
57
  }
100
58
 
101
- return derivedQualifiedStatementVerifiedTrivially;
59
+ return derivedQualifiedStatementUnified;
102
60
  }
103
61
 
104
62
  function unifyDerivedQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
@@ -3,6 +3,7 @@
3
3
  import verifyStatement from "../../verify/statement";
4
4
 
5
5
  import { nodeQuery } from "../../utilities/query";
6
+ import { verifyStatementTrivially } from "../../verify/statement";
6
7
 
7
8
  const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!");
8
9
 
@@ -18,9 +19,15 @@ export default function verifyUnqualifiedStatement(unqualifiedStatementNode, ass
18
19
 
19
20
  if (statementVerified) {
20
21
  if (derived) {
21
- const derivedUnqualifiedStatementVerified = verifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext);
22
+ const statementVerifiedTrivially = verifyStatementTrivially(statementNode, localContext);
22
23
 
23
- unqualifiedStatementVerified = derivedUnqualifiedStatementVerified; ///
24
+ if (statementVerifiedTrivially) {
25
+ unqualifiedStatementVerified = true;
26
+ } else {
27
+ const derivedUnqualifiedStatementUnified = unifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext);
28
+
29
+ unqualifiedStatementVerified = derivedUnqualifiedStatementUnified; ///
30
+ }
24
31
  } else {
25
32
  unqualifiedStatementVerified = true;
26
33
  }
@@ -33,21 +40,21 @@ export default function verifyUnqualifiedStatement(unqualifiedStatementNode, ass
33
40
  return unqualifiedStatementVerified;
34
41
  }
35
42
 
36
- function verifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext) {
37
- let derivedUnqualifiedStatementVerified;
43
+ function unifyDerivedUnqualifiedStatement(unqualifiedStatementNode, localContext) {
44
+ let derivedUnqualifiedStatementUnified;
38
45
 
39
46
  const unqualifiedStatementString = localContext.nodeAsString(unqualifiedStatementNode);
40
47
 
41
- localContext.trace(`Verifying the '${unqualifiedStatementString}' derived unqualified statement...`, unqualifiedStatementNode);
48
+ localContext.trace(`Unifying the '${unqualifiedStatementString}' derived unqualified statement...`, unqualifiedStatementNode);
42
49
 
43
50
  const statementNode = statementNodeQuery(unqualifiedStatementNode),
44
51
  statementUnified = localContext.unifyStatement(statementNode, localContext);
45
52
 
46
- derivedUnqualifiedStatementVerified = statementUnified; ///
53
+ derivedUnqualifiedStatementUnified = statementUnified; ///
47
54
 
48
- if (derivedUnqualifiedStatementVerified) {
49
- localContext.debug(`...verified the '${unqualifiedStatementString}' derived unqualified statement.`, unqualifiedStatementNode);
55
+ if (derivedUnqualifiedStatementUnified) {
56
+ localContext.debug(`...unified the '${unqualifiedStatementString}' derived unqualified statement.`, unqualifiedStatementNode);
50
57
  }
51
58
 
52
- return derivedUnqualifiedStatementVerified;
59
+ return derivedUnqualifiedStatementUnified;
53
60
  }
@@ -89,6 +89,30 @@ Object.assign(shim, {
89
89
 
90
90
  export default verifyStatement;
91
91
 
92
+ export function verifyStatementTrivially(statementNode, localContext) {
93
+ let statementVerifiedTrivially = false;
94
+
95
+ const statementString = localContext.nodeAsString(statementNode);
96
+
97
+ localContext.trace(`Verifying the '${statementString}' statement trivially...`, statementNode);
98
+
99
+ const equalityNode = equalityNodeQuery(statementNode),
100
+ judgementNode = judgementNodeQuery(statementNode),
101
+ typeAssertionNode = typeAssertionNodeQuery(statementNode),
102
+ definedAssertionNode = definedAssertionNodeQuery(statementNode),
103
+ containedAssertionNode = containedAssertionNodeQuery(statementNode);
104
+
105
+ if ((equalityNode !== null) || (judgementNode !== null) || (typeAssertionNode !== null) || (definedAssertionNode !== null) || (containedAssertionNode !== null)) {
106
+ statementVerifiedTrivially = true;
107
+ }
108
+
109
+ if (statementVerifiedTrivially) {
110
+ localContext.debug(`...verified the '${statementString}' statement trivially.`, statementNode);
111
+ }
112
+
113
+ return statementVerifiedTrivially;
114
+ }
115
+
92
116
  function verifyStatementAsMetavariable(statementNode, assignments, derived, localContext) {
93
117
  let statementVerifiedAsMetavariable = false;
94
118
 
@@ -2,7 +2,10 @@
2
2
 
3
3
  import shim from "../shim";
4
4
 
5
- import { FRAME_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
5
+ import { nodeQuery } from "../utilities/query";
6
+ import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
7
+
8
+ const metavariableNodeQuery = nodeQuery("/statement/metavariable!");
6
9
 
7
10
  export default function verifyStatementGivenMetaType(statementNode, metaType, assignments, derived, localContext) {
8
11
  let statementVerifiedGivenMetaType;
@@ -10,9 +13,23 @@ export default function verifyStatementGivenMetaType(statementNode, metaType, as
10
13
  const metaTypeName = metaType.getName();
11
14
 
12
15
  switch (metaTypeName) {
13
- case FRAME_META_TYPE_NAME: {
16
+ case FRAME_META_TYPE_NAME:
17
+ case REFERENCE_META_TYPE_NAME: {
18
+ statementVerifiedGivenMetaType = false;
19
+
20
+ const metavariableNode = metavariableNodeQuery(statementNode);
21
+
22
+ if (metavariableNode !== null) {
23
+ const metavariable = localContext.findMetavariableByMetavariableNode(metavariableNode);
24
+
25
+ if (metavariable !== null) {
26
+ const metavariableMetaType = metavariable.getMetaType();
14
27
 
15
- debugger
28
+ if (metavariableMetaType === metaType) {
29
+ statementVerifiedGivenMetaType = true;
30
+ }
31
+ }
32
+ }
16
33
 
17
34
  break;
18
35
  }
@@ -21,16 +38,10 @@ export default function verifyStatementGivenMetaType(statementNode, metaType, as
21
38
  const { verifyStatement } = shim,
22
39
  statementVerified = verifyStatement(statementNode, assignments, derived, localContext)
23
40
 
24
- statementVerifiedGivenMetaType = statementVerified;
41
+ statementVerifiedGivenMetaType = statementVerified; ///
25
42
 
26
43
  break;
27
44
  }
28
-
29
- default: {
30
-
31
- debugger
32
-
33
- }
34
45
  }
35
46
 
36
47
  return statementVerifiedGivenMetaType;