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.
- 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 +129 -40
- 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/equivalence.js +116 -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 +5 -4
- package/lib/process/instantiate.js +13 -38
- package/lib/process/verify.js +22 -29
- package/lib/ruleNames.js +9 -5
- package/lib/utilities/brackets.js +11 -11
- package/lib/utilities/element.js +606 -99
- package/lib/utilities/instance.js +61 -0
- package/lib/utilities/string.js +87 -34
- package/package.json +6 -6
- 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 +25 -37
- package/src/element/equivalences.js +12 -6
- 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/equivalence.js +16 -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 +7 -4
- package/src/process/instantiate.js +8 -36
- package/src/process/verify.js +42 -47
- package/src/ruleNames.js +2 -1
- package/src/utilities/brackets.js +13 -13
- package/src/utilities/element.js +760 -139
- package/src/utilities/instance.js +53 -0
- 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
|
+
}
|
package/src/utilities/string.js
CHANGED
|
@@ -30,19 +30,32 @@ export function labelsStringFromLabels(labels) {
|
|
|
30
30
|
return labelsString;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export function
|
|
34
|
-
const
|
|
35
|
-
|
|
33
|
+
export function premisesStringFromPremises(premises) {
|
|
34
|
+
const premisesString = premises.reduce((premisesString, premise) => {
|
|
35
|
+
const premiseString = premise.getString();
|
|
36
36
|
|
|
37
|
-
|
|
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
|
|
41
|
-
const
|
|
42
|
-
|
|
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
|
-
|
|
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
|
|
69
|
-
|
|
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
|
-
}
|