occam-verify-cli 1.0.438 → 1.0.444
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 +38 -35
- package/lib/context/local.js +10 -10
- package/lib/context/release.js +6 -6
- package/lib/context/temporary.js +14 -14
- package/lib/element/assertion/contained.js +45 -45
- package/lib/element/assertion/defined.js +13 -13
- package/lib/element/assertion/property.js +23 -22
- package/lib/element/assertion/satisfies.js +7 -6
- package/lib/element/assertion/subproof.js +20 -17
- package/lib/element/assertion/type.js +3 -2
- package/lib/element/assertion.js +1 -23
- package/lib/element/assumption.js +24 -22
- package/lib/element/axiom.js +9 -12
- package/lib/element/axiomLemmaTheoremConjecture.js +32 -32
- package/lib/element/{statement/combinator → combinator}/bracketed.js +16 -16
- package/lib/element/combinator.js +229 -0
- package/lib/element/conclusion.js +11 -9
- package/lib/element/{term/constructor → constructor}/bracketed.js +5 -5
- package/lib/element/constructor.js +232 -0
- package/lib/element/declaration/combinator.js +2 -16
- package/lib/element/declaration/complexType.js +12 -12
- package/lib/element/declaration/constructor.js +13 -11
- package/lib/element/declaration/simpleType.js +4 -4
- package/lib/element/declaration/typePrefix.js +2 -2
- package/lib/element/declaration/variable.js +3 -3
- package/lib/element/deduction.js +11 -9
- package/lib/element/derivation.js +7 -10
- package/lib/element/equivalence.js +10 -10
- package/lib/element/equivalences.js +5 -5
- package/lib/element/frame.js +32 -38
- package/lib/element/hypothesis.js +3 -3
- package/lib/element/judgement.js +6 -4
- package/lib/element/label.js +8 -8
- package/lib/element/metaLemmaMetatheorem.js +5 -5
- package/lib/element/metaType.js +17 -80
- package/lib/element/metavariable.js +34 -34
- package/lib/element/parameter.js +3 -3
- package/lib/element/premise.js +49 -58
- package/lib/element/property.js +9 -9
- package/lib/element/propertyRelation.js +13 -13
- package/lib/element/reference.js +14 -17
- package/lib/element/rule.js +21 -21
- package/lib/element/signature.js +11 -11
- package/lib/element/statement.js +18 -18
- package/lib/element/step.js +83 -55
- package/lib/element/subDerivation.js +7 -10
- package/lib/element/subproof.js +6 -14
- package/lib/element/substitution/frame.js +1 -7
- package/lib/element/substitution/reference.js +2 -3
- package/lib/element/substitution/statement.js +44 -15
- package/lib/element/substitution/term.js +10 -57
- package/lib/element/substitution.js +5 -11
- package/lib/element/substitutions.js +29 -29
- package/lib/element/supposition.js +63 -55
- package/lib/element/term.js +21 -34
- package/lib/element/type.js +47 -60
- package/lib/element/typePrefix.js +5 -5
- package/lib/element/variable.js +9 -9
- package/lib/element.js +9 -3
- package/lib/metaTypes.js +52 -0
- package/lib/node/axiomLemmaTheoremConjecture.js +9 -9
- package/lib/node/body/axiom.js +2 -25
- package/lib/node/body/conjecture.js +2 -25
- package/lib/node/body/lemma.js +2 -25
- package/lib/node/body/metaLemma.js +2 -25
- package/lib/node/body/metatheorem.js +2 -25
- package/lib/node/body/rule.js +15 -1
- package/lib/node/body/theorem.js +2 -25
- package/lib/node/body.js +25 -2
- package/lib/node/combinator.js +11 -2
- package/lib/node/constructor.js +11 -2
- package/lib/node/declaration/combinator.js +5 -5
- package/lib/node/declaration/constructor.js +8 -8
- package/lib/node/declaration/property.js +15 -15
- package/lib/node/declaration/simpleType.js +31 -31
- package/lib/node/declaration/variable.js +8 -8
- package/lib/node/equality.js +8 -8
- package/lib/node/frame.js +20 -20
- package/lib/node/header.js +22 -22
- package/lib/node/metaLemmaMetaTheorem.js +16 -16
- package/lib/node/metavariable.js +15 -15
- package/lib/node/property.js +8 -8
- package/lib/node/propertyRelation.js +8 -8
- package/lib/node/rule.js +16 -16
- package/lib/node/statement.js +12 -12
- package/lib/node/step.js +22 -22
- package/lib/node/subproof.js +8 -8
- package/lib/node/substitution/frame.js +19 -19
- package/lib/node/substitution/statement.js +19 -19
- package/lib/node/substitution/term.js +19 -19
- package/lib/node/term.js +35 -35
- package/lib/preamble.js +5 -5
- package/lib/process/instantiate.js +20 -2
- package/lib/process/unify.js +39 -42
- package/lib/process/validate.js +431 -0
- package/lib/process/verify.js +44 -135
- package/lib/types.js +27 -0
- package/lib/utilities/brackets.js +4 -4
- package/lib/utilities/element.js +91 -55
- package/lib/utilities/instance.js +18 -18
- package/lib/utilities/statement.js +2 -2
- package/lib/utilities/string.js +21 -10
- package/lib/utilities/unification.js +237 -0
- package/lib/utilities/validation.js +251 -0
- package/package.json +6 -6
- package/src/context/file.js +37 -31
- package/src/context/local.js +8 -8
- package/src/context/release.js +9 -6
- package/src/context/temporary.js +11 -11
- package/src/element/assertion/contained.js +19 -20
- package/src/element/assertion/defined.js +11 -12
- package/src/element/assertion/property.js +20 -20
- package/src/element/assertion/satisfies.js +6 -6
- package/src/element/assertion/subproof.js +17 -15
- package/src/element/assertion/type.js +2 -2
- package/src/element/assertion.js +0 -2
- package/src/element/assumption.js +22 -19
- package/src/element/axiom.js +7 -11
- package/src/element/axiomLemmaTheoremConjecture.js +36 -36
- package/src/element/{statement/combinator → combinator}/bracketed.js +7 -7
- package/src/element/combinator.js +90 -0
- package/src/element/conclusion.js +12 -10
- package/src/element/{term/constructor → constructor}/bracketed.js +5 -5
- package/src/element/{term/constructor.js → constructor.js} +17 -25
- package/src/element/declaration/combinator.js +1 -22
- package/src/element/declaration/complexType.js +11 -11
- package/src/element/declaration/constructor.js +13 -10
- package/src/element/declaration/simpleType.js +3 -3
- package/src/element/declaration/typePrefix.js +1 -1
- package/src/element/declaration/variable.js +2 -2
- package/src/element/deduction.js +12 -9
- package/src/element/derivation.js +6 -10
- package/src/element/equivalence.js +8 -8
- package/src/element/equivalences.js +4 -4
- package/src/element/frame.js +28 -30
- package/src/element/hypothesis.js +2 -2
- package/src/element/judgement.js +6 -3
- package/src/element/label.js +4 -4
- package/src/element/metaLemmaMetatheorem.js +4 -3
- package/src/element/metaType.js +9 -45
- package/src/element/metavariable.js +29 -31
- package/src/element/parameter.js +2 -2
- package/src/element/premise.js +55 -62
- package/src/element/property.js +6 -6
- package/src/element/propertyRelation.js +11 -11
- package/src/element/reference.js +12 -21
- package/src/element/rule.js +17 -16
- package/src/element/signature.js +10 -9
- package/src/element/statement.js +16 -18
- package/src/element/step.js +93 -55
- package/src/element/subDerivation.js +6 -10
- package/src/element/subproof.js +4 -12
- package/src/element/substitution/frame.js +0 -2
- package/src/element/substitution/reference.js +1 -5
- package/src/element/substitution/statement.js +44 -14
- package/src/element/substitution/term.js +10 -13
- package/src/element/substitution.js +3 -5
- package/src/element/substitutions.js +48 -30
- package/src/element/supposition.js +88 -70
- package/src/element/term.js +18 -28
- package/src/element/type.js +42 -36
- package/src/element/typePrefix.js +3 -3
- package/src/element/variable.js +7 -7
- package/src/element.js +3 -1
- package/src/metaTypes.js +42 -0
- package/src/node/axiomLemmaTheoremConjecture.js +6 -6
- package/src/node/body/axiom.js +0 -21
- package/src/node/body/conjecture.js +0 -23
- package/src/node/body/lemma.js +0 -23
- package/src/node/body/metaLemma.js +0 -23
- package/src/node/body/metatheorem.js +0 -23
- package/src/node/body/rule.js +12 -0
- package/src/node/body/theorem.js +0 -23
- package/src/node/body.js +23 -0
- package/src/node/combinator.js +9 -0
- package/src/node/constructor.js +9 -0
- package/src/node/declaration/combinator.js +5 -5
- package/src/node/declaration/constructor.js +8 -8
- package/src/node/declaration/property.js +14 -14
- package/src/node/declaration/simpleType.js +31 -31
- package/src/node/declaration/variable.js +7 -7
- package/src/node/equality.js +7 -7
- package/src/node/frame.js +21 -21
- package/src/node/header.js +22 -22
- package/src/node/metaLemmaMetaTheorem.js +14 -14
- package/src/node/metavariable.js +14 -14
- package/src/node/property.js +7 -7
- package/src/node/propertyRelation.js +7 -7
- package/src/node/rule.js +15 -15
- package/src/node/statement.js +12 -12
- package/src/node/step.js +21 -21
- package/src/node/subproof.js +7 -7
- package/src/node/substitution/frame.js +18 -18
- package/src/node/substitution/statement.js +18 -18
- package/src/node/substitution/term.js +18 -18
- package/src/node/term.js +34 -34
- package/src/preamble.js +4 -4
- package/src/process/instantiate.js +12 -0
- package/src/process/unify.js +53 -57
- package/src/process/validate.js +316 -0
- package/src/process/verify.js +50 -138
- package/src/types.js +18 -0
- package/src/utilities/brackets.js +10 -6
- package/src/utilities/element.js +125 -82
- package/src/utilities/instance.js +18 -18
- package/src/utilities/statement.js +2 -2
- package/src/utilities/string.js +34 -20
- package/src/{mixins/step/unify.js → utilities/unification.js} +82 -68
- package/src/{mixins/statement/validate.js → utilities/validation.js} +143 -69
- package/lib/element/statement/combinator.js +0 -105
- package/lib/element/term/constructor.js +0 -172
- package/lib/mixins/statement/validate.js +0 -198
- package/lib/mixins/step/unify.js +0 -228
- package/lib/mixins/term/verify.js +0 -65
- package/src/element/statement/combinator.js +0 -59
- package/src/mixins/term/verify.js +0 -81
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { define } from "../../elements";
|
|
4
|
-
import { unifyStatementWithCombinatorStatement } from "../../process/unify";
|
|
5
|
-
import { statementFromJSON, statementToStatementJSON } from "../../utilities/json";
|
|
6
|
-
|
|
7
|
-
export default define(class CombinatorStatement {
|
|
8
|
-
constructor(statement) {
|
|
9
|
-
this.statement = statement;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
getStatement() {
|
|
13
|
-
return this.statement;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
getString() { return this.statement.getString(); }
|
|
17
|
-
|
|
18
|
-
getStatementNode() {
|
|
19
|
-
const statementNode = this.statement.getNode();
|
|
20
|
-
|
|
21
|
-
return statementNode;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
unifyStatement(statement, assignments, stated, context) {
|
|
25
|
-
let statementUnifies;
|
|
26
|
-
|
|
27
|
-
const statementString = statement.getString(),
|
|
28
|
-
combinatorStatementString = this.getString();
|
|
29
|
-
|
|
30
|
-
context.trace(`Unifying the '${statementString}' statement with the '${combinatorStatementString}' combinator's statement...`);
|
|
31
|
-
|
|
32
|
-
const combinatorStatement = this, ///
|
|
33
|
-
statementUnifiesWithCombinator = unifyStatementWithCombinatorStatement(statement, combinatorStatement, assignments, stated, context);
|
|
34
|
-
|
|
35
|
-
statementUnifies = statementUnifiesWithCombinator; ///
|
|
36
|
-
|
|
37
|
-
if (statementUnifies) {
|
|
38
|
-
context.debug(`...unified the '${statementString}' statement with the '${combinatorStatementString}' combinator's statement.`);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return statementUnifies;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
toJSON() {
|
|
45
|
-
const statementJSON = statementToStatementJSON(this.statement),
|
|
46
|
-
json = statementJSON;
|
|
47
|
-
|
|
48
|
-
return json;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static name = "CombinatorStatement";
|
|
52
|
-
|
|
53
|
-
static fromJSON(json, context) {
|
|
54
|
-
const statement = statementFromJSON(json, context),
|
|
55
|
-
combinator = new CombinatorStatement(statement);
|
|
56
|
-
|
|
57
|
-
return combinator;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import elements from "../../elements";
|
|
4
|
-
|
|
5
|
-
function unifyWithBracketedConstructor(term, context, verifyAhead) {
|
|
6
|
-
let unifiesWithBracketedConstructor;
|
|
7
|
-
|
|
8
|
-
const { BracketedConstructor } = elements,
|
|
9
|
-
bracketedConstructor = BracketedConstructor.fromNothing();
|
|
10
|
-
|
|
11
|
-
unifiesWithBracketedConstructor = bracketedConstructor.unifyTerm(term, context, verifyAhead);
|
|
12
|
-
|
|
13
|
-
return unifiesWithBracketedConstructor;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function unifyWithConstructors(term, context, verifyAhead) {
|
|
17
|
-
let unifiesWithConstructors;
|
|
18
|
-
|
|
19
|
-
const constructors = context.getConstructors();
|
|
20
|
-
|
|
21
|
-
unifiesWithConstructors = constructors.some((constructor) => {
|
|
22
|
-
const unifiesWithConstructor = constructor.unifyTerm(term, context, verifyAhead);
|
|
23
|
-
|
|
24
|
-
if (unifiesWithConstructor) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
return unifiesWithConstructors;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function verifyTermAsVariable(term, context, verifyAhead) {
|
|
33
|
-
let termVerifiesAsVariable = false;
|
|
34
|
-
|
|
35
|
-
const { Variable } = elements,
|
|
36
|
-
termNode = term.getNode(),
|
|
37
|
-
singularVariableNode = termNode.getSingularVariableNode();
|
|
38
|
-
|
|
39
|
-
if (singularVariableNode !== null) {
|
|
40
|
-
let variable;
|
|
41
|
-
|
|
42
|
-
const termString = term.getString(),
|
|
43
|
-
variableNode = singularVariableNode; ///
|
|
44
|
-
|
|
45
|
-
variable = Variable.fromVariableNode(variableNode, context);
|
|
46
|
-
|
|
47
|
-
context.trace(`Verifying the '${termString}' term as a variable...`);
|
|
48
|
-
|
|
49
|
-
const variableVerifies = variable.verify(context);
|
|
50
|
-
|
|
51
|
-
if (variableVerifies) {
|
|
52
|
-
let verifiesAhead;
|
|
53
|
-
|
|
54
|
-
const variableIdentifier = variable.getIdentifier();
|
|
55
|
-
|
|
56
|
-
variable = context.findVariableByVariableIdentifier(variableIdentifier);
|
|
57
|
-
|
|
58
|
-
const type = variable.getType();
|
|
59
|
-
|
|
60
|
-
term.setType(type);
|
|
61
|
-
|
|
62
|
-
verifiesAhead = verifyAhead();
|
|
63
|
-
|
|
64
|
-
termVerifiesAsVariable = verifiesAhead; ///
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (termVerifiesAsVariable) {
|
|
68
|
-
context.debug(`...verified the '${termString}' term as a variable.`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return termVerifiesAsVariable;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const verifyMixins = [
|
|
76
|
-
unifyWithBracketedConstructor,
|
|
77
|
-
unifyWithConstructors,
|
|
78
|
-
verifyTermAsVariable
|
|
79
|
-
];
|
|
80
|
-
|
|
81
|
-
export default verifyMixins;
|