occam-verify-cli 1.0.428 → 1.0.437
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.
- package/lib/context/file.js +1 -1
- package/lib/element/assertion.js +115 -24
- package/lib/element/assumption.js +120 -20
- package/lib/element/axiomLemmaTheoremConjecture.js +118 -30
- package/lib/element/conclusion.js +113 -25
- package/lib/element/declaration.js +112 -37
- package/lib/element/deduction.js +112 -66
- package/lib/element/derivation.js +114 -5
- package/lib/element/equality.js +119 -26
- package/lib/element/equivalence.js +121 -28
- package/lib/element/equivalences.js +122 -7
- package/lib/element/error.js +115 -32
- package/lib/element/frame.js +119 -59
- package/lib/element/hypothesis.js +115 -27
- package/lib/element/judgement.js +120 -33
- package/lib/element/label.js +116 -63
- package/lib/element/lemma.js +1 -9
- package/lib/element/metaLemma.js +1 -8
- package/lib/element/metaLemmaMetatheorem.js +117 -29
- package/lib/element/metaType.js +68 -61
- package/lib/element/metatheorem.js +1 -8
- package/lib/element/metavariable.js +122 -93
- package/lib/element/parameter.js +120 -20
- package/lib/element/premise.js +114 -35
- package/lib/element/procedureCall.js +117 -99
- package/lib/element/procedureReference.js +120 -20
- package/lib/element/proof.js +111 -55
- package/lib/element/property.js +121 -35
- package/lib/element/propertyRelation.js +116 -72
- package/lib/element/reference.js +120 -70
- package/lib/element/rule.js +116 -41
- package/lib/element/section.js +114 -133
- package/lib/element/signature.js +120 -20
- package/lib/element/statement/combinator/bracketed.js +4 -9
- package/lib/element/statement.js +110 -125
- package/lib/element/step.js +115 -27
- package/lib/element/subDerivation.js +111 -43
- package/lib/element/subproof.js +115 -20
- package/lib/element/substitution.js +115 -31
- package/lib/element/substitutions.js +120 -6
- package/lib/element/supposition.js +114 -35
- package/lib/element/term/constructor/bracketed.js +4 -8
- package/lib/element/term.js +111 -98
- package/lib/element/theorem.js +1 -8
- package/lib/element/type.js +71 -91
- package/lib/element/typePrefix.js +120 -20
- package/lib/element/variable.js +116 -111
- package/lib/element.js +67 -0
- package/lib/node/{nonsense.js → equivalences.js} +10 -10
- package/lib/node/frame.js +11 -5
- package/lib/node/procedureReference.js +6 -6
- package/lib/node/statement.js +11 -5
- package/lib/node/term.js +8 -1
- package/lib/nonTerminalNodeMap.js +3 -3
- package/lib/process/instantiate.js +8 -39
- package/lib/process/verify.js +22 -29
- package/lib/ruleNames.js +5 -5
- package/lib/utilities/brackets.js +11 -11
- package/lib/utilities/element.js +588 -94
- package/lib/utilities/instance.js +61 -0
- package/lib/utilities/string.js +73 -1
- package/package.json +10 -10
- package/src/context/file.js +1 -1
- package/src/element/assertion.js +4 -16
- package/src/element/assumption.js +5 -12
- package/src/element/axiomLemmaTheoremConjecture.js +4 -16
- package/src/element/conclusion.js +4 -16
- package/src/element/declaration.js +4 -16
- package/src/element/deduction.js +5 -19
- package/src/element/derivation.js +5 -2
- package/src/element/equality.js +4 -16
- package/src/element/equivalence.js +4 -16
- package/src/element/equivalences.js +12 -5
- package/src/element/error.js +4 -24
- package/src/element/frame.js +5 -56
- package/src/element/hypothesis.js +6 -23
- package/src/element/judgement.js +5 -30
- package/src/element/label.js +8 -19
- package/src/element/lemma.js +0 -7
- package/src/element/metaLemma.js +0 -7
- package/src/element/metaLemmaMetatheorem.js +4 -16
- package/src/element/metaType.js +23 -64
- package/src/element/metatheorem.js +0 -7
- package/src/element/metavariable.js +6 -94
- package/src/element/parameter.js +10 -18
- package/src/element/premise.js +4 -31
- package/src/element/procedureCall.js +5 -77
- package/src/element/procedureReference.js +7 -17
- package/src/element/proof.js +5 -17
- package/src/element/property.js +8 -30
- package/src/element/propertyRelation.js +5 -33
- package/src/element/reference.js +8 -72
- package/src/element/rule.js +4 -41
- package/src/element/section.js +4 -129
- package/src/element/signature.js +7 -13
- package/src/element/statement/combinator/bracketed.js +3 -9
- package/src/element/statement.js +3 -126
- package/src/element/step.js +4 -16
- package/src/element/subDerivation.js +5 -3
- package/src/element/subproof.js +5 -12
- package/src/element/substitution.js +4 -24
- package/src/element/substitutions.js +6 -2
- package/src/element/supposition.js +4 -31
- package/src/element/term/constructor/bracketed.js +4 -9
- package/src/element/term.js +6 -59
- package/src/element/theorem.js +0 -7
- package/src/element/type.js +9 -104
- package/src/element/typePrefix.js +8 -13
- package/src/element/variable.js +6 -109
- package/src/element.js +29 -0
- package/src/node/{nonsense.js → equivalences.js} +2 -2
- package/src/node/frame.js +10 -5
- package/src/node/procedureReference.js +4 -4
- package/src/node/statement.js +10 -5
- package/src/node/term.js +7 -0
- package/src/nonTerminalNodeMap.js +3 -3
- package/src/process/instantiate.js +4 -36
- package/src/process/verify.js +42 -47
- package/src/ruleNames.js +1 -1
- package/src/utilities/brackets.js +13 -13
- package/src/utilities/element.js +731 -129
- package/src/utilities/instance.js +53 -0
- 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
|
+
}
|
package/src/utilities/string.js
CHANGED
|
@@ -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
|
|