occam-verify-cli 1.0.428 → 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 (123) 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 +121 -28
  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/{nonsense.js → equivalences.js} +10 -10
  50. package/lib/node/frame.js +11 -5
  51. package/lib/node/procedureReference.js +6 -6
  52. package/lib/node/statement.js +11 -5
  53. package/lib/node/term.js +8 -1
  54. package/lib/nonTerminalNodeMap.js +3 -3
  55. package/lib/process/instantiate.js +8 -39
  56. package/lib/process/verify.js +22 -29
  57. package/lib/ruleNames.js +5 -5
  58. package/lib/utilities/brackets.js +11 -11
  59. package/lib/utilities/element.js +588 -94
  60. package/lib/utilities/instance.js +61 -0
  61. package/lib/utilities/string.js +73 -1
  62. package/package.json +1 -1
  63. package/src/context/file.js +1 -1
  64. package/src/element/assertion.js +4 -16
  65. package/src/element/assumption.js +5 -12
  66. package/src/element/axiomLemmaTheoremConjecture.js +4 -16
  67. package/src/element/conclusion.js +4 -16
  68. package/src/element/declaration.js +4 -16
  69. package/src/element/deduction.js +5 -19
  70. package/src/element/derivation.js +5 -2
  71. package/src/element/equality.js +4 -16
  72. package/src/element/equivalence.js +4 -16
  73. package/src/element/equivalences.js +12 -5
  74. package/src/element/error.js +4 -24
  75. package/src/element/frame.js +5 -56
  76. package/src/element/hypothesis.js +6 -23
  77. package/src/element/judgement.js +5 -30
  78. package/src/element/label.js +8 -19
  79. package/src/element/lemma.js +0 -7
  80. package/src/element/metaLemma.js +0 -7
  81. package/src/element/metaLemmaMetatheorem.js +4 -16
  82. package/src/element/metaType.js +23 -64
  83. package/src/element/metatheorem.js +0 -7
  84. package/src/element/metavariable.js +6 -94
  85. package/src/element/parameter.js +10 -18
  86. package/src/element/premise.js +4 -31
  87. package/src/element/procedureCall.js +5 -77
  88. package/src/element/procedureReference.js +7 -17
  89. package/src/element/proof.js +5 -17
  90. package/src/element/property.js +8 -30
  91. package/src/element/propertyRelation.js +5 -33
  92. package/src/element/reference.js +8 -72
  93. package/src/element/rule.js +4 -41
  94. package/src/element/section.js +4 -129
  95. package/src/element/signature.js +7 -13
  96. package/src/element/statement/combinator/bracketed.js +3 -9
  97. package/src/element/statement.js +3 -126
  98. package/src/element/step.js +4 -16
  99. package/src/element/subDerivation.js +5 -3
  100. package/src/element/subproof.js +5 -12
  101. package/src/element/substitution.js +4 -24
  102. package/src/element/substitutions.js +6 -2
  103. package/src/element/supposition.js +4 -31
  104. package/src/element/term/constructor/bracketed.js +4 -9
  105. package/src/element/term.js +6 -59
  106. package/src/element/theorem.js +0 -7
  107. package/src/element/type.js +9 -104
  108. package/src/element/typePrefix.js +8 -13
  109. package/src/element/variable.js +6 -109
  110. package/src/element.js +29 -0
  111. package/src/node/{nonsense.js → equivalences.js} +2 -2
  112. package/src/node/frame.js +10 -5
  113. package/src/node/procedureReference.js +4 -4
  114. package/src/node/statement.js +10 -5
  115. package/src/node/term.js +7 -0
  116. package/src/nonTerminalNodeMap.js +3 -3
  117. package/src/process/instantiate.js +4 -36
  118. package/src/process/verify.js +42 -47
  119. package/src/ruleNames.js +1 -1
  120. package/src/utilities/brackets.js +13 -13
  121. package/src/utilities/element.js +731 -129
  122. package/src/utilities/instance.js +53 -0
  123. package/src/utilities/string.js +97 -0
@@ -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,6 +30,34 @@ export function labelsStringFromLabels(labels) {
30
30
  return labelsString;
31
31
  }
32
32
 
33
+ export function premisesStringFromPremises(premises) {
34
+ const premisesString = premises.reduce((premisesString, premise) => {
35
+ const premiseString = premise.getString();
36
+
37
+ premisesString = (premisesString !== null) ?
38
+ `${premisesString}, ${premiseString}` :
39
+ premiseString; ///
40
+
41
+ return premisesString;
42
+ }, null);
43
+
44
+ return premisesString;
45
+ }
46
+
47
+ export function hypothesesStringFromHypotheses(hypotheses, context) {
48
+ const hypothesesString = hypotheses.reduce((hypothesesString, hypothesis) => {
49
+ const hypothesisString = hypothesis.getString();
50
+
51
+ hypothesesString = (hypothesesString !== null) ?
52
+ `${hypothesesString}, ${hypothesisString}` :
53
+ hypothesisString; ///
54
+
55
+ return hypothesesString;
56
+ }, null);
57
+
58
+ return hypothesesString;
59
+ }
60
+
33
61
  export function superTypesStringFromSuperTypes(superTypes) {
34
62
  const superTypesString = superTypes.reduce((superTypesString, superType) => {
35
63
  if (superType !== baseType) {
@@ -46,6 +74,34 @@ export function superTypesStringFromSuperTypes(superTypes) {
46
74
  return superTypesString;
47
75
  }
48
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
+
49
105
  export function suppositionsStringFromSuppositions(suppositions) {
50
106
  const suppositionsString = suppositions.reduce((suppositionsString, supposition) => {
51
107
  const suppositionString = supposition.getString();
@@ -84,6 +140,17 @@ export function subproofStringFromSubproof(subproof) {
84
140
  return subproofString;
85
141
  }
86
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
+
87
154
  export function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixName, superTypes) {
88
155
  let typeString;
89
156
 
@@ -100,6 +167,36 @@ export function typeStringFromTypeNameTypePrefixNameAndSuperTypes(typeName, type
100
167
  return typeString;
101
168
  }
102
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
+
103
200
  export function axiomLemmaTheoremConjectureStringFromLabelsSuppositionsAndDeduction(labels, suppositions, deduction) {
104
201
  let axiomLemmaTheoremConjectureString;
105
202