occam-verify-cli 1.0.427 → 1.0.436

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.
Files changed (125) hide show
  1. package/lib/context/file.js +1 -1
  2. package/lib/element/assertion.js +115 -24
  3. package/lib/element/assumption.js +120 -20
  4. package/lib/element/axiomLemmaTheoremConjecture.js +118 -30
  5. package/lib/element/conclusion.js +113 -25
  6. package/lib/element/declaration.js +112 -37
  7. package/lib/element/deduction.js +112 -66
  8. package/lib/element/derivation.js +114 -5
  9. package/lib/element/equality.js +119 -26
  10. package/lib/element/equivalence.js +129 -40
  11. package/lib/element/equivalences.js +122 -7
  12. package/lib/element/error.js +115 -32
  13. package/lib/element/frame.js +119 -59
  14. package/lib/element/hypothesis.js +115 -27
  15. package/lib/element/judgement.js +120 -33
  16. package/lib/element/label.js +116 -63
  17. package/lib/element/lemma.js +1 -9
  18. package/lib/element/metaLemma.js +1 -8
  19. package/lib/element/metaLemmaMetatheorem.js +117 -29
  20. package/lib/element/metaType.js +68 -61
  21. package/lib/element/metatheorem.js +1 -8
  22. package/lib/element/metavariable.js +122 -93
  23. package/lib/element/parameter.js +120 -20
  24. package/lib/element/premise.js +114 -35
  25. package/lib/element/procedureCall.js +117 -99
  26. package/lib/element/procedureReference.js +120 -20
  27. package/lib/element/proof.js +111 -55
  28. package/lib/element/property.js +121 -35
  29. package/lib/element/propertyRelation.js +116 -72
  30. package/lib/element/reference.js +120 -70
  31. package/lib/element/rule.js +116 -41
  32. package/lib/element/section.js +114 -133
  33. package/lib/element/signature.js +120 -20
  34. package/lib/element/statement/combinator/bracketed.js +4 -9
  35. package/lib/element/statement.js +110 -125
  36. package/lib/element/step.js +115 -27
  37. package/lib/element/subDerivation.js +111 -43
  38. package/lib/element/subproof.js +115 -20
  39. package/lib/element/substitution.js +115 -31
  40. package/lib/element/substitutions.js +120 -6
  41. package/lib/element/supposition.js +114 -35
  42. package/lib/element/term/constructor/bracketed.js +4 -8
  43. package/lib/element/term.js +111 -98
  44. package/lib/element/theorem.js +1 -8
  45. package/lib/element/type.js +71 -91
  46. package/lib/element/typePrefix.js +120 -20
  47. package/lib/element/variable.js +116 -111
  48. package/lib/element.js +67 -0
  49. package/lib/node/equivalence.js +116 -0
  50. package/lib/node/{nonsense.js → equivalences.js} +10 -10
  51. package/lib/node/frame.js +11 -5
  52. package/lib/node/procedureReference.js +6 -6
  53. package/lib/node/statement.js +11 -5
  54. package/lib/node/term.js +8 -1
  55. package/lib/nonTerminalNodeMap.js +5 -4
  56. package/lib/process/instantiate.js +13 -38
  57. package/lib/process/verify.js +22 -29
  58. package/lib/ruleNames.js +9 -5
  59. package/lib/utilities/brackets.js +11 -11
  60. package/lib/utilities/element.js +606 -99
  61. package/lib/utilities/instance.js +61 -0
  62. package/lib/utilities/string.js +87 -34
  63. package/package.json +6 -6
  64. package/src/context/file.js +1 -1
  65. package/src/element/assertion.js +4 -16
  66. package/src/element/assumption.js +5 -12
  67. package/src/element/axiomLemmaTheoremConjecture.js +4 -16
  68. package/src/element/conclusion.js +4 -16
  69. package/src/element/declaration.js +4 -16
  70. package/src/element/deduction.js +5 -19
  71. package/src/element/derivation.js +5 -2
  72. package/src/element/equality.js +4 -16
  73. package/src/element/equivalence.js +25 -37
  74. package/src/element/equivalences.js +12 -6
  75. package/src/element/error.js +4 -24
  76. package/src/element/frame.js +5 -56
  77. package/src/element/hypothesis.js +6 -23
  78. package/src/element/judgement.js +5 -30
  79. package/src/element/label.js +8 -19
  80. package/src/element/lemma.js +0 -7
  81. package/src/element/metaLemma.js +0 -7
  82. package/src/element/metaLemmaMetatheorem.js +4 -16
  83. package/src/element/metaType.js +23 -64
  84. package/src/element/metatheorem.js +0 -7
  85. package/src/element/metavariable.js +6 -94
  86. package/src/element/parameter.js +10 -18
  87. package/src/element/premise.js +4 -31
  88. package/src/element/procedureCall.js +5 -77
  89. package/src/element/procedureReference.js +7 -17
  90. package/src/element/proof.js +5 -17
  91. package/src/element/property.js +8 -30
  92. package/src/element/propertyRelation.js +5 -33
  93. package/src/element/reference.js +8 -72
  94. package/src/element/rule.js +4 -41
  95. package/src/element/section.js +4 -129
  96. package/src/element/signature.js +7 -13
  97. package/src/element/statement/combinator/bracketed.js +3 -9
  98. package/src/element/statement.js +3 -126
  99. package/src/element/step.js +4 -16
  100. package/src/element/subDerivation.js +5 -3
  101. package/src/element/subproof.js +5 -12
  102. package/src/element/substitution.js +4 -24
  103. package/src/element/substitutions.js +6 -2
  104. package/src/element/supposition.js +4 -31
  105. package/src/element/term/constructor/bracketed.js +4 -9
  106. package/src/element/term.js +6 -59
  107. package/src/element/theorem.js +0 -7
  108. package/src/element/type.js +9 -104
  109. package/src/element/typePrefix.js +8 -13
  110. package/src/element/variable.js +6 -109
  111. package/src/element.js +29 -0
  112. package/src/node/equivalence.js +16 -0
  113. package/src/node/{nonsense.js → equivalences.js} +2 -2
  114. package/src/node/frame.js +10 -5
  115. package/src/node/procedureReference.js +4 -4
  116. package/src/node/statement.js +10 -5
  117. package/src/node/term.js +7 -0
  118. package/src/nonTerminalNodeMap.js +7 -4
  119. package/src/process/instantiate.js +8 -36
  120. package/src/process/verify.js +42 -47
  121. package/src/ruleNames.js +2 -1
  122. package/src/utilities/brackets.js +13 -13
  123. package/src/utilities/element.js +760 -139
  124. package/src/utilities/instance.js +53 -0
  125. package/src/utilities/string.js +118 -59
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import nominalContext from "../context/nominal";
4
+
5
+ import { BASE_TYPE_SYMBOL } from "../constants";
6
+ import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
7
+ import { instantiateTerm, instantiateStatement } from "../process/instantiate";
8
+ import { termFromTermNode, statementFromStatementNode } from "../utilities/element";
9
+
10
+ let bracketedConstructorTerm = null,
11
+ bracketedCombinatorStatement = null;
12
+
13
+ export function bracketedConstructorTermFromNothing() {
14
+ if (bracketedConstructorTerm === null) {
15
+ let context;
16
+
17
+ const string = `(${BASE_TYPE_SYMBOL})`;
18
+
19
+ context = nominalContext; ///
20
+
21
+ const node = instantiateTerm(string, context),
22
+ bracketedConstructorTermNode = node; ///
23
+
24
+ context = {
25
+ nodeAsString: () => string
26
+ };
27
+
28
+ bracketedConstructorTerm = termFromTermNode(bracketedConstructorTermNode, context);
29
+ }
30
+
31
+ return bracketedConstructorTerm;
32
+ }
33
+
34
+ export function bracketedCombinatorStatementFromNothing() {
35
+ if (bracketedCombinatorStatement === null) {
36
+ let context;
37
+
38
+ const string = `(${STATEMENT_META_TYPE_NAME})`;
39
+
40
+ context = nominalContext; ///
41
+
42
+ const node = instantiateStatement(string, context),
43
+ bracketedCombinatorStatementNode = node; ///
44
+
45
+ context = {
46
+ nodeAsString: () => string
47
+ };
48
+
49
+ bracketedCombinatorStatement = statementFromStatementNode(bracketedCombinatorStatementNode, context);
50
+ }
51
+
52
+ return bracketedCombinatorStatement;
53
+ }
@@ -30,19 +30,32 @@ export function labelsStringFromLabels(labels) {
30
30
  return labelsString;
31
31
  }
32
32
 
33
- export function signatureStringFromTerms(terms) {
34
- const termsString = termsStringFromTerms(terms),
35
- signatureString = `[${termsString}]`;
33
+ export function premisesStringFromPremises(premises) {
34
+ const premisesString = premises.reduce((premisesString, premise) => {
35
+ const premiseString = premise.getString();
36
36
 
37
- return signatureString;
37
+ premisesString = (premisesString !== null) ?
38
+ `${premisesString}, ${premiseString}` :
39
+ premiseString; ///
40
+
41
+ return premisesString;
42
+ }, null);
43
+
44
+ return premisesString;
38
45
  }
39
46
 
40
- export function subproofStringFromSubproof(subproof) {
41
- const suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context),
42
- lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context),
43
- subproofString = `[${suppositionStatementsOrNonsenseString}] ... ${lastStatementOrNonsenseString}`;
47
+ export function hypothesesStringFromHypotheses(hypotheses, context) {
48
+ const hypothesesString = hypotheses.reduce((hypothesesString, hypothesis) => {
49
+ const hypothesisString = hypothesis.getString();
44
50
 
45
- return subproofString;
51
+ hypothesesString = (hypothesesString !== null) ?
52
+ `${hypothesesString}, ${hypothesisString}` :
53
+ hypothesisString; ///
54
+
55
+ return hypothesesString;
56
+ }, null);
57
+
58
+ return hypothesesString;
46
59
  }
47
60
 
48
61
  export function superTypesStringFromSuperTypes(superTypes) {
@@ -61,13 +74,41 @@ export function superTypesStringFromSuperTypes(superTypes) {
61
74
  return superTypesString;
62
75
  }
63
76
 
77
+ export function parametersStringFromParameters(parameters) {
78
+ const parametersString = parameters.reduce((parametersString, parameter) => {
79
+ const parameterString = parameter.getString();
80
+
81
+ parametersString = (parametersString === null) ?
82
+ parameterString : ///
83
+ `${parametersString}, ${parameterString}`;
84
+
85
+ return parametersString;
86
+ }, null);
87
+
88
+ return parametersString;
89
+ }
90
+
91
+ export function assumptionsStringFromAssumptions(assumptions) {
92
+ const assumptionsString = assumptions.reduce((assumptionsString, assumption) => {
93
+ const assumptionString = assumption.getString();
94
+
95
+ assumptionsString = (assumptionsString === null) ?
96
+ assumptionString :
97
+ `${assumptionsString}, ${assumptionString}`;
98
+
99
+ return assumptionsString;
100
+ }, null);
101
+
102
+ return assumptionsString;
103
+ }
104
+
64
105
  export function suppositionsStringFromSuppositions(suppositions) {
65
106
  const suppositionsString = suppositions.reduce((suppositionsString, supposition) => {
66
107
  const suppositionString = supposition.getString();
67
108
 
68
- suppositionsString = (suppositionsString !== null) ?
69
- `${suppositionsString}, ${suppositionString}` :
70
- suppositionString; ///
109
+ suppositionsString = (suppositionsString === null) ?
110
+ suppositionString: ///
111
+ `${suppositionsString}, ${suppositionString}`;
71
112
 
72
113
  return suppositionsString;
73
114
  }, null);
@@ -75,6 +116,41 @@ export function suppositionsStringFromSuppositions(suppositions) {
75
116
  return suppositionsString;
76
117
  }
77
118
 
119
+ export function signatureStringFromTerms(terms) {
120
+ const termsString = termsStringFromTerms(terms),
121
+ signatureString = `[${termsString}]`;
122
+
123
+ return signatureString;
124
+ }
125
+
126
+ export function equivalenceStringFromTerms(terms) {
127
+ const termsString = termsStringFromTerms(terms),
128
+ equivalenceString = termsString; ///
129
+
130
+ return equivalenceString;
131
+ }
132
+
133
+ export function subproofStringFromSubproof(subproof) {
134
+ const lastStep = subproof.getLastStep(),
135
+ suppositions = subproof.getSuppositions(),
136
+ lastStepString = lastStep.getString(),
137
+ suppositionsString = suppositionsStringFromSuppositions(suppositions),
138
+ subproofString = `[${suppositionsString}] ... ${lastStepString}`;
139
+
140
+ return subproofString;
141
+ }
142
+
143
+ export function rulsStringFromLabelsPremisesAndConclusion(labels, premises, conclusion) {
144
+ const premisesString = premisesStringFromPremises(premises),
145
+ conclusionString = conclusion.getString(),
146
+ labelsString = labelsStringFromLabels(labels),
147
+ ruleString = (premisesString !== null) ?
148
+ `${labelsString} :: [${premisesString}] ... ${conclusionString}` :
149
+ `${labelsString} :: ${conclusionString}`;
150
+
151
+ return ruleString;
152
+ }
153
+
78
154
  export function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixName, superTypes) {
79
155
  let typeString;
80
156
 
@@ -91,6 +167,36 @@ export function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, type
91
167
  return typeString;
92
168
  }
93
169
 
170
+ export function procedureCallStringFromProcedureReferenceAndParameters(procedureReference, parameters) {
171
+ const procedureReferenceName = procedureReference.getName(),
172
+ parametersString = parametersStringFromParameters(parameters),
173
+ procedureCallString = `${procedureReferenceName}(${parametersString})`;
174
+
175
+ return procedureCallString;
176
+ }
177
+
178
+ export function sectionStringFromHypothesesAxiomLemmaTheoremAndConjecture(hypotheses, axiom, lemma, theorem, conjecture, context) {
179
+ const axiomLemmaTheoremOrConjecture = (axiom || lemma || theorem || conjecture),
180
+ axiomLemmaTheoremOrConjectureString = axiomLemmaTheoremOrConjecture.getString(),
181
+ hypothesesString = hypothesesStringFromHypotheses(hypotheses, context),
182
+ sectionString = (axiomLemmaTheoremOrConjectureString !== null) ?
183
+ `[${hypothesesString}]::: ${axiomLemmaTheoremOrConjectureString}` :
184
+ `[${hypothesesString}]::: `;
185
+
186
+ return sectionString;
187
+ }
188
+
189
+ export function metaLemmaMetatheoremStringFromLabelSuppositionsAndDeduction(label, suppositions, deduction) {
190
+ const suppositionsString = suppositionsStringFromSuppositions(suppositions),
191
+ deductionString = deduction.getString(),
192
+ labelString = label.getString(),
193
+ metaLemmaMetatheoremString = (suppositionsString !== null) ?
194
+ `${labelString} :: [${suppositionsString}] ... ${deductionString}` :
195
+ `${labelString} :: ${deductionString}`;
196
+
197
+ return metaLemmaMetatheoremString;
198
+ }
199
+
94
200
  export function axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction) {
95
201
  let axiomLemmaTheoremConjectureString;
96
202
 
@@ -110,50 +216,3 @@ export function axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduct
110
216
 
111
217
  return axiomLemmaTheoremConjectureString;
112
218
  }
113
-
114
- function suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
115
- const suppositionNodes = subproofNode.getSuppositionNodes(),
116
- suppositionStatementsOrNonsenseString = suppositionNodes.reduce((suppositionStatementsOrNonsenseString, suppositionNode) => {
117
- const suppositionOrStepNode = suppositionNode, ///
118
- statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context),
119
- suppositionStatementOrNonsenseString = statementOrNonsenseString; ///
120
-
121
- suppositionStatementsOrNonsenseString = (suppositionStatementsOrNonsenseString !== null) ?
122
- `${suppositionStatementsOrNonsenseString}, ${suppositionStatementOrNonsenseString}` :
123
- suppositionStatementOrNonsenseString; ///
124
-
125
- return suppositionStatementsOrNonsenseString;
126
- }, null);
127
-
128
- return suppositionStatementsOrNonsenseString;
129
- }
130
-
131
- function statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context) {
132
- let statementOrNonsenseString;
133
-
134
- const nonsenseNode = suppositionOrStepNode.getNonsenseNode(),
135
- statementNode = suppositionOrStepNode.getStatementNode();
136
-
137
- if (false) {
138
- ///
139
- } else if (nonsenseNode !== null) {
140
- const nonsenseString = context.nodeAsString(nonsenseNode);
141
-
142
- statementOrNonsenseString = nonsenseString; ///
143
- } else if (statementNode !== null) {
144
- const statementString = context.nodeAsString(statementNode);
145
-
146
- statementOrNonsenseString = statementString; ///
147
- }
148
-
149
- return statementOrNonsenseString;
150
- }
151
-
152
- function lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
153
- const lastStepNode = subproofNode.getLastStepNode(),
154
- suppositionOrStepNode = lastStepNode, ///
155
- statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context),
156
- lastStatementOrNonsenseString = statementOrNonsenseString; ///
157
-
158
- return lastStatementOrNonsenseString;
159
- }