occam-verify-cli 1.0.612 → 1.0.617
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/ephemeral.js +59 -31
- package/lib/context/file/nominal.js +45 -19
- package/lib/context/liminal.js +19 -34
- package/lib/context/scoped.js +34 -26
- package/lib/context.js +7 -7
- package/lib/element/assertion.js +5 -9
- package/lib/element/assumption.js +11 -4
- package/lib/element/combinator.js +8 -1
- package/lib/element/conclusion.js +8 -1
- package/lib/element/constructor.js +8 -1
- package/lib/element/declaration.js +3 -7
- package/lib/element/deduction.js +8 -1
- package/lib/element/derivation.js +8 -1
- package/lib/element/equality.js +8 -1
- package/lib/element/equivalence.js +8 -1
- package/lib/element/equivalences.js +8 -1
- package/lib/element/error.js +10 -7
- package/lib/element/hypothesis.js +8 -1
- package/lib/element/judgement.js +9 -2
- package/lib/element/label.js +8 -1
- package/lib/element/metaType.js +8 -1
- package/lib/element/metavariable.js +5 -8
- package/lib/element/parameter.js +8 -1
- package/lib/element/procedureCall.js +21 -29
- package/lib/element/procedureReference.js +15 -1
- package/lib/element/proof.js +8 -1
- package/lib/element/proofAssertion.js +8 -1
- package/lib/element/property.js +8 -1
- package/lib/element/propertyRelation.js +8 -1
- package/lib/element/reference.js +8 -8
- package/lib/element/rule.js +10 -7
- package/lib/element/section.js +8 -1
- package/lib/element/signature.js +8 -1
- package/lib/element/statement.js +12 -16
- package/lib/element/subDerivation.js +8 -1
- package/lib/element/subproof.js +8 -1
- package/lib/element/substitution/frame.js +3 -3
- package/lib/element/substitution/reference.js +3 -3
- package/lib/element/substitution/statement.js +3 -3
- package/lib/element/substitution/term.js +3 -3
- package/lib/element/substitution.js +3 -7
- package/lib/element/topLevelAssertion/axiom.js +8 -1
- package/lib/element/topLevelAssertion/conjecture.js +8 -1
- package/lib/element/topLevelAssertion/lemma.js +8 -1
- package/lib/element/topLevelAssertion/theorem.js +8 -1
- package/lib/element/topLevelAssertion.js +3 -7
- package/lib/element/topLevelMetaAssertion/metaLemma.js +8 -1
- package/lib/element/topLevelMetaAssertion/metatheorem.js +8 -1
- package/lib/element/type.js +8 -1
- package/lib/element/typePrefix.js +8 -1
- package/lib/element/variable.js +8 -3
- package/lib/preamble.js +1 -2
- package/lib/process/assign.js +2 -3
- package/lib/utilities/substitutions.js +2 -2
- package/package.json +2 -2
- package/src/context/ephemeral.js +64 -32
- package/src/context/file/nominal.js +82 -17
- package/src/context/liminal.js +21 -46
- package/src/context/scoped.js +47 -31
- package/src/context.js +4 -4
- package/src/element/assertion.js +4 -8
- package/src/element/assumption.js +9 -2
- package/src/element/combinator.js +7 -0
- package/src/element/conclusion.js +7 -0
- package/src/element/constructor.js +7 -0
- package/src/element/declaration.js +1 -3
- package/src/element/deduction.js +7 -0
- package/src/element/derivation.js +7 -0
- package/src/element/equality.js +7 -0
- package/src/element/equivalence.js +8 -0
- package/src/element/equivalences.js +7 -0
- package/src/element/error.js +5 -2
- package/src/element/hypothesis.js +7 -0
- package/src/element/judgement.js +8 -2
- package/src/element/label.js +7 -0
- package/src/element/metaType.js +7 -0
- package/src/element/metavariable.js +4 -11
- package/src/element/parameter.js +7 -0
- package/src/element/procedureCall.js +21 -14
- package/src/element/procedureReference.js +13 -0
- package/src/element/proof.js +7 -0
- package/src/element/proofAssertion.js +7 -0
- package/src/element/property.js +7 -0
- package/src/element/propertyRelation.js +7 -0
- package/src/element/reference.js +8 -7
- package/src/element/rule.js +8 -9
- package/src/element/section.js +7 -0
- package/src/element/signature.js +7 -0
- package/src/element/statement.js +9 -14
- package/src/element/subDerivation.js +7 -0
- package/src/element/subproof.js +7 -0
- package/src/element/substitution/frame.js +2 -2
- package/src/element/substitution/reference.js +2 -2
- package/src/element/substitution/statement.js +2 -2
- package/src/element/substitution/term.js +2 -2
- package/src/element/substitution.js +0 -4
- package/src/element/topLevelAssertion/axiom.js +7 -0
- package/src/element/topLevelAssertion/conjecture.js +7 -0
- package/src/element/topLevelAssertion/lemma.js +7 -0
- package/src/element/topLevelAssertion/theorem.js +7 -0
- package/src/element/topLevelAssertion.js +1 -9
- package/src/element/topLevelMetaAssertion/metaLemma.js +7 -0
- package/src/element/topLevelMetaAssertion/metatheorem.js +7 -0
- package/src/element/type.js +7 -0
- package/src/element/typePrefix.js +7 -0
- package/src/element/variable.js +7 -4
- package/src/preamble.js +0 -1
- package/src/process/assign.js +1 -3
- package/src/utilities/substitutions.js +1 -1
- package/lib/element/substitutions.js +0 -225
- package/src/element/substitutions.js +0 -84
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { Element } from "occam-languages";
|
|
4
|
-
import { arrayUtilities } from "necessary";
|
|
5
|
-
|
|
6
|
-
import { define } from "../elements";
|
|
7
|
-
import { EMPTY_STRING } from "../constants";
|
|
8
|
-
import { substitutionsStringFromSubstitutions } from "../utilities/string";
|
|
9
|
-
|
|
10
|
-
const { first, extract, correlate } = arrayUtilities;
|
|
11
|
-
|
|
12
|
-
export default define(class Substitutions extends Element {
|
|
13
|
-
getNonTrivialLength() {
|
|
14
|
-
const nonTrivialLength = this.reduceSubstitution((nonTrivialLength, substitution) => {
|
|
15
|
-
const substitutionTrivial = substitution.isTrivial();
|
|
16
|
-
|
|
17
|
-
if (!substitutionTrivial) {
|
|
18
|
-
nonTrivialLength += 1;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return nonTrivialLength;
|
|
22
|
-
}, 0);
|
|
23
|
-
|
|
24
|
-
return nonTrivialLength;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
getFirstSubstitution() {
|
|
28
|
-
let firstSubstitution = null;
|
|
29
|
-
|
|
30
|
-
const length = this.getLength();
|
|
31
|
-
|
|
32
|
-
if (length > 0) {
|
|
33
|
-
firstSubstitution = first(this.array);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return firstSubstitution;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
extractSubstitution(callbcak) { return extract(this.array, callbcak); }
|
|
40
|
-
|
|
41
|
-
correlateSubstitutions(substitutions) {
|
|
42
|
-
const array = substitutions.getArray(),
|
|
43
|
-
arrayA = array, ///
|
|
44
|
-
arrayB = this.array, ///
|
|
45
|
-
correlates = correlate(arrayA, arrayB, (substitutionA, substitutionB) => {
|
|
46
|
-
const substitutionAIsEQualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
|
|
47
|
-
|
|
48
|
-
if (substitutionAIsEQualToSubstitutionB) {
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
return correlates;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
asString() {
|
|
57
|
-
let string;
|
|
58
|
-
|
|
59
|
-
const length = this.getLength();
|
|
60
|
-
|
|
61
|
-
if (length === 0) {
|
|
62
|
-
string = EMPTY_STRING;
|
|
63
|
-
} else {
|
|
64
|
-
const substitutions = this.array, ///
|
|
65
|
-
substitutionsString = substitutionsStringFromSubstitutions(substitutions);
|
|
66
|
-
|
|
67
|
-
string = substitutionsString; ///
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return string;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
static name = "Substitutions";
|
|
74
|
-
|
|
75
|
-
static fromNothing(context) {
|
|
76
|
-
const node = null,
|
|
77
|
-
string = EMPTY_STRING,
|
|
78
|
-
array = [],
|
|
79
|
-
savedArray = [],
|
|
80
|
-
substitutions = new Substitutions(context, string, node, array, savedArray);
|
|
81
|
-
|
|
82
|
-
return substitutions;
|
|
83
|
-
}
|
|
84
|
-
});
|