occam-verify-cli 1.0.983 → 1.0.985
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/action/verify.js +22 -27
- package/lib/constants.js +1 -41
- package/lib/index.js +1 -2
- package/lib/utilities/fileContext.js +3 -8
- package/lib/utilities/releaseContext.js +2 -2
- package/package.json +10 -11
- package/src/action/verify.js +8 -18
- package/src/constants.js +0 -10
- package/src/index.js +0 -2
- package/src/utilities/fileContext.js +1 -2
- package/src/utilities/releaseContext.js +1 -1
- package/lib/context/aphasic.js +0 -27
- package/lib/context/bounded.js +0 -244
- package/lib/context/branching.js +0 -61
- package/lib/context/file/nominal.js +0 -586
- package/lib/context/illative.js +0 -28
- package/lib/context/liminal.js +0 -200
- package/lib/context/literal.js +0 -44
- package/lib/context/mnemic.js +0 -454
- package/lib/context/nested.js +0 -31
- package/lib/context/nominal.js +0 -57
- package/lib/context/phaneric.js +0 -44
- package/lib/context/thetic.js +0 -28
- package/lib/context.js +0 -445
- package/lib/element/assertion/contained.js +0 -218
- package/lib/element/assertion/defined.js +0 -213
- package/lib/element/assertion/property.js +0 -176
- package/lib/element/assertion/signature.js +0 -170
- package/lib/element/assertion/subproof.js +0 -220
- package/lib/element/assertion/type.js +0 -227
- package/lib/element/assertion.js +0 -49
- package/lib/element/assumption/metaLevel.js +0 -244
- package/lib/element/assumption.js +0 -252
- package/lib/element/combinator/bracketed.js +0 -36
- package/lib/element/combinator.js +0 -104
- package/lib/element/conclusion.js +0 -131
- package/lib/element/constructor/bracketed.js +0 -57
- package/lib/element/constructor.js +0 -129
- package/lib/element/declaration/combinator.js +0 -58
- package/lib/element/declaration/complexType.js +0 -180
- package/lib/element/declaration/constructor.js +0 -93
- package/lib/element/declaration/metavariable.js +0 -77
- package/lib/element/declaration/property.js +0 -88
- package/lib/element/declaration/simpleType.js +0 -148
- package/lib/element/declaration/typePrefix.js +0 -53
- package/lib/element/declaration/variable.js +0 -99
- package/lib/element/declaration.js +0 -15
- package/lib/element/deduction.js +0 -131
- package/lib/element/derivation.js +0 -46
- package/lib/element/equality.js +0 -211
- package/lib/element/equivalence.js +0 -200
- package/lib/element/error.js +0 -27
- package/lib/element/frame.js +0 -238
- package/lib/element/hypothesis.js +0 -135
- package/lib/element/judgement.js +0 -212
- package/lib/element/label.js +0 -135
- package/lib/element/metaType.js +0 -57
- package/lib/element/metavariable.js +0 -452
- package/lib/element/parameter.js +0 -69
- package/lib/element/procedureCall.js +0 -116
- package/lib/element/procedureReference.js +0 -56
- package/lib/element/proof.js +0 -52
- package/lib/element/proofAssertion/premise.js +0 -238
- package/lib/element/proofAssertion/step.js +0 -235
- package/lib/element/proofAssertion/supposition.js +0 -249
- package/lib/element/proofAssertion.js +0 -56
- package/lib/element/property.js +0 -176
- package/lib/element/propertyRelation.js +0 -132
- package/lib/element/reference.js +0 -227
- package/lib/element/rule.js +0 -242
- package/lib/element/section.js +0 -64
- package/lib/element/signature.js +0 -195
- package/lib/element/statement.js +0 -228
- package/lib/element/subDerivation.js +0 -46
- package/lib/element/subproof.js +0 -91
- package/lib/element/substitution/frame.js +0 -256
- package/lib/element/substitution/reference.js +0 -192
- package/lib/element/substitution/statement.js +0 -294
- package/lib/element/substitution/term.js +0 -266
- package/lib/element/substitution.js +0 -183
- package/lib/element/term.js +0 -217
- package/lib/element/topLevelAssertion/axiom.js +0 -158
- package/lib/element/topLevelAssertion/conjecture.js +0 -42
- package/lib/element/topLevelAssertion/lemma.js +0 -39
- package/lib/element/topLevelAssertion/theorem.js +0 -42
- package/lib/element/topLevelAssertion.js +0 -286
- package/lib/element/topLevelMetaAssertion/metaLemma.js +0 -42
- package/lib/element/topLevelMetaAssertion/metatheorem.js +0 -42
- package/lib/element/topLevelMetaAssertion.js +0 -179
- package/lib/element/type.js +0 -240
- package/lib/element/typePrefix.js +0 -85
- package/lib/element/variable.js +0 -206
- package/lib/elements.js +0 -27
- package/lib/metaTypeNames.js +0 -26
- package/lib/metaTypes.js +0 -66
- package/lib/node/argument.js +0 -31
- package/lib/node/assertion/contained.js +0 -51
- package/lib/node/assertion/defined.js +0 -47
- package/lib/node/assertion/property.js +0 -36
- package/lib/node/assertion/signature.js +0 -32
- package/lib/node/assertion/subproof.js +0 -28
- package/lib/node/assertion/type.js +0 -32
- package/lib/node/assertion.js +0 -18
- package/lib/node/assumption/metaLevel.js +0 -27
- package/lib/node/assumption.js +0 -27
- package/lib/node/body/axiom.js +0 -23
- package/lib/node/body/conjecture.js +0 -23
- package/lib/node/body/lemma.js +0 -23
- package/lib/node/body/metaLemma.js +0 -23
- package/lib/node/body/metatheorem.js +0 -23
- package/lib/node/body/rule.js +0 -44
- package/lib/node/body/theorem.js +0 -23
- package/lib/node/body.js +0 -31
- package/lib/node/combinator.js +0 -23
- package/lib/node/conclusion.js +0 -27
- package/lib/node/constructor.js +0 -23
- package/lib/node/declaration/combinator.js +0 -28
- package/lib/node/declaration/complexType.js +0 -72
- package/lib/node/declaration/constructor.js +0 -47
- package/lib/node/declaration/metavariable.js +0 -36
- package/lib/node/declaration/property.js +0 -44
- package/lib/node/declaration/simpleType.js +0 -72
- package/lib/node/declaration/typePrefix.js +0 -32
- package/lib/node/declaration/variable.js +0 -51
- package/lib/node/declaration.js +0 -18
- package/lib/node/deduction.js +0 -27
- package/lib/node/derivation.js +0 -26
- package/lib/node/document.js +0 -18
- package/lib/node/equality.js +0 -33
- package/lib/node/equivalence.js +0 -23
- package/lib/node/equivalences.js +0 -18
- package/lib/node/error.js +0 -18
- package/lib/node/frame.js +0 -38
- package/lib/node/header/axiom.js +0 -28
- package/lib/node/header/conjecture.js +0 -23
- package/lib/node/header/lemma.js +0 -23
- package/lib/node/header/metaLemma.js +0 -23
- package/lib/node/header/metatheorem.js +0 -23
- package/lib/node/header/rule.js +0 -23
- package/lib/node/header/theorem.js +0 -23
- package/lib/node/header.js +0 -47
- package/lib/node/hypothesis.js +0 -27
- package/lib/node/judgement.js +0 -31
- package/lib/node/label.js +0 -23
- package/lib/node/labels.js +0 -23
- package/lib/node/metaArgument.js +0 -23
- package/lib/node/metaType.js +0 -30
- package/lib/node/metavariable.js +0 -39
- package/lib/node/parameter.js +0 -47
- package/lib/node/parenthesisedLabel.js +0 -23
- package/lib/node/parenthesisedLabels.js +0 -27
- package/lib/node/placeholder.js +0 -18
- package/lib/node/procedureCall.js +0 -31
- package/lib/node/procedureReference.js +0 -30
- package/lib/node/proof.js +0 -23
- package/lib/node/proofAssertion/premise.js +0 -28
- package/lib/node/proofAssertion/step.js +0 -52
- package/lib/node/proofAssertion/supposition.js +0 -28
- package/lib/node/proofAssertion.js +0 -27
- package/lib/node/property.js +0 -30
- package/lib/node/propertyRelation.js +0 -31
- package/lib/node/qualification.js +0 -27
- package/lib/node/reference.js +0 -23
- package/lib/node/rule.js +0 -43
- package/lib/node/section.js +0 -39
- package/lib/node/signature.js +0 -23
- package/lib/node/statement.js +0 -103
- package/lib/node/subDerivation.js +0 -26
- package/lib/node/subproof.js +0 -35
- package/lib/node/substitution/frame.js +0 -40
- package/lib/node/substitution/reference.js +0 -40
- package/lib/node/substitution/statement.js +0 -60
- package/lib/node/substitution/term.js +0 -40
- package/lib/node/substitution.js +0 -18
- package/lib/node/term.js +0 -60
- package/lib/node/topLevelAssertion/axiom.js +0 -26
- package/lib/node/topLevelAssertion/conjecture.js +0 -26
- package/lib/node/topLevelAssertion/lemma.js +0 -26
- package/lib/node/topLevelAssertion/theorem.js +0 -26
- package/lib/node/topLevelAssertion.js +0 -46
- package/lib/node/topLevelMetaAssertion/metaLemma.js +0 -26
- package/lib/node/topLevelMetaAssertion/metatheorem.js +0 -26
- package/lib/node/topLevelMetaAssertion.js +0 -42
- package/lib/node/type.js +0 -60
- package/lib/node/typePrefix.js +0 -30
- package/lib/node/types.js +0 -23
- package/lib/node/variable.js +0 -30
- package/lib/nominal/lexer.js +0 -15
- package/lib/nominal/parser.js +0 -24
- package/lib/nonTerminalNodeMap.js +0 -189
- package/lib/pass/zip.js +0 -23
- package/lib/preamble.js +0 -73
- package/lib/process/assign.js +0 -62
- package/lib/process/discharge.js +0 -38
- package/lib/process/equate.js +0 -73
- package/lib/process/instantiate.js +0 -261
- package/lib/process/unification.js +0 -228
- package/lib/process/unify.js +0 -336
- package/lib/process/validate.js +0 -135
- package/lib/process/validation.js +0 -291
- package/lib/process/verify.js +0 -205
- package/lib/ruleNames.js +0 -350
- package/lib/tokenTypes.js +0 -22
- package/lib/utilities/assignment.js +0 -47
- package/lib/utilities/bnf.js +0 -21
- package/lib/utilities/brackets.js +0 -77
- package/lib/utilities/breakPoint.js +0 -38
- package/lib/utilities/context.js +0 -220
- package/lib/utilities/element.js +0 -1851
- package/lib/utilities/equivalence.js +0 -27
- package/lib/utilities/equivalences.js +0 -134
- package/lib/utilities/instance.js +0 -44
- package/lib/utilities/json.js +0 -1109
- package/lib/utilities/string.js +0 -231
- package/lib/utilities/substitutions.js +0 -86
- package/lib/utilities/synoptic.js +0 -159
- package/lib/utilities/type.js +0 -27
- package/src/context/aphasic.js +0 -15
- package/src/context/bounded.js +0 -362
- package/src/context/branching.js +0 -69
- package/src/context/file/nominal.js +0 -955
- package/src/context/illative.js +0 -17
- package/src/context/liminal.js +0 -280
- package/src/context/literal.js +0 -42
- package/src/context/mnemic.js +0 -778
- package/src/context/nested.js +0 -21
- package/src/context/nominal.js +0 -62
- package/src/context/phaneric.js +0 -43
- package/src/context/thetic.js +0 -17
- package/src/context.js +0 -722
- package/src/element/assertion/contained.js +0 -313
- package/src/element/assertion/defined.js +0 -310
- package/src/element/assertion/property.js +0 -252
- package/src/element/assertion/signature.js +0 -239
- package/src/element/assertion/subproof.js +0 -335
- package/src/element/assertion/type.js +0 -328
- package/src/element/assertion.js +0 -65
- package/src/element/assumption/metaLevel.js +0 -373
- package/src/element/assumption.js +0 -374
- package/src/element/combinator/bracketed.js +0 -32
- package/src/element/combinator.js +0 -145
- package/src/element/conclusion.js +0 -185
- package/src/element/constructor/bracketed.js +0 -68
- package/src/element/constructor.js +0 -188
- package/src/element/declaration/combinator.js +0 -66
- package/src/element/declaration/complexType.js +0 -257
- package/src/element/declaration/constructor.js +0 -122
- package/src/element/declaration/metavariable.js +0 -93
- package/src/element/declaration/property.js +0 -108
- package/src/element/declaration/simpleType.js +0 -208
- package/src/element/declaration/typePrefix.js +0 -58
- package/src/element/declaration/variable.js +0 -130
- package/src/element/declaration.js +0 -7
- package/src/element/deduction.js +0 -185
- package/src/element/derivation.js +0 -57
- package/src/element/equality.js +0 -325
- package/src/element/equivalence.js +0 -276
- package/src/element/error.js +0 -26
- package/src/element/frame.js +0 -356
- package/src/element/hypothesis.js +0 -186
- package/src/element/judgement.js +0 -303
- package/src/element/label.js +0 -186
- package/src/element/metaType.js +0 -75
- package/src/element/metavariable.js +0 -662
- package/src/element/parameter.js +0 -90
- package/src/element/procedureCall.js +0 -159
- package/src/element/procedureReference.js +0 -71
- package/src/element/proof.js +0 -61
- package/src/element/proofAssertion/premise.js +0 -354
- package/src/element/proofAssertion/step.js +0 -271
- package/src/element/proofAssertion/supposition.js +0 -377
- package/src/element/proofAssertion.js +0 -74
- package/src/element/property.js +0 -258
- package/src/element/propertyRelation.js +0 -193
- package/src/element/reference.js +0 -345
- package/src/element/rule.js +0 -358
- package/src/element/section.js +0 -78
- package/src/element/signature.js +0 -292
- package/src/element/statement.js +0 -358
- package/src/element/subDerivation.js +0 -56
- package/src/element/subproof.js +0 -116
- package/src/element/substitution/frame.js +0 -392
- package/src/element/substitution/reference.js +0 -274
- package/src/element/substitution/statement.js +0 -452
- package/src/element/substitution/term.js +0 -407
- package/src/element/substitution.js +0 -261
- package/src/element/term.js +0 -339
- package/src/element/topLevelAssertion/axiom.js +0 -244
- package/src/element/topLevelAssertion/conjecture.js +0 -40
- package/src/element/topLevelAssertion/lemma.js +0 -42
- package/src/element/topLevelAssertion/theorem.js +0 -40
- package/src/element/topLevelAssertion.js +0 -436
- package/src/element/topLevelMetaAssertion/metaLemma.js +0 -40
- package/src/element/topLevelMetaAssertion/metatheorem.js +0 -40
- package/src/element/topLevelMetaAssertion.js +0 -276
- package/src/element/type.js +0 -374
- package/src/element/typePrefix.js +0 -113
- package/src/element/variable.js +0 -259
- package/src/elements.js +0 -13
- package/src/metaTypeNames.js +0 -5
- package/src/metaTypes.js +0 -71
- package/src/node/argument.js +0 -30
- package/src/node/assertion/contained.js +0 -53
- package/src/node/assertion/defined.js +0 -46
- package/src/node/assertion/property.js +0 -30
- package/src/node/assertion/signature.js +0 -23
- package/src/node/assertion/subproof.js +0 -16
- package/src/node/assertion/type.js +0 -23
- package/src/node/assertion.js +0 -7
- package/src/node/assumption/metaLevel.js +0 -23
- package/src/node/assumption.js +0 -23
- package/src/node/body/axiom.js +0 -7
- package/src/node/body/conjecture.js +0 -7
- package/src/node/body/lemma.js +0 -7
- package/src/node/body/metaLemma.js +0 -7
- package/src/node/body/metatheorem.js +0 -7
- package/src/node/body/rule.js +0 -42
- package/src/node/body/theorem.js +0 -7
- package/src/node/body.js +0 -30
- package/src/node/combinator.js +0 -16
- package/src/node/conclusion.js +0 -23
- package/src/node/constructor.js +0 -16
- package/src/node/declaration/combinator.js +0 -16
- package/src/node/declaration/complexType.js +0 -88
- package/src/node/declaration/constructor.js +0 -46
- package/src/node/declaration/metavariable.js +0 -30
- package/src/node/declaration/property.js +0 -42
- package/src/node/declaration/simpleType.js +0 -87
- package/src/node/declaration/typePrefix.js +0 -24
- package/src/node/declaration/variable.js +0 -53
- package/src/node/declaration.js +0 -7
- package/src/node/deduction.js +0 -23
- package/src/node/derivation.js +0 -19
- package/src/node/document.js +0 -7
- package/src/node/equality.js +0 -35
- package/src/node/equivalence.js +0 -16
- package/src/node/equivalences.js +0 -7
- package/src/node/error.js +0 -7
- package/src/node/frame.js +0 -40
- package/src/node/header/axiom.js +0 -16
- package/src/node/header/conjecture.js +0 -7
- package/src/node/header/lemma.js +0 -7
- package/src/node/header/metaLemma.js +0 -7
- package/src/node/header/metatheorem.js +0 -7
- package/src/node/header/rule.js +0 -7
- package/src/node/header/theorem.js +0 -7
- package/src/node/header.js +0 -54
- package/src/node/hypothesis.js +0 -23
- package/src/node/judgement.js +0 -30
- package/src/node/label.js +0 -16
- package/src/node/labels.js +0 -16
- package/src/node/metaArgument.js +0 -16
- package/src/node/metaType.js +0 -26
- package/src/node/metavariable.js +0 -42
- package/src/node/parameter.js +0 -51
- package/src/node/parenthesisedLabel.js +0 -16
- package/src/node/parenthesisedLabels.js +0 -23
- package/src/node/placeholder.js +0 -7
- package/src/node/procedureCall.js +0 -30
- package/src/node/procedureReference.js +0 -26
- package/src/node/proof.js +0 -16
- package/src/node/proofAssertion/premise.js +0 -16
- package/src/node/proofAssertion/step.js +0 -52
- package/src/node/proofAssertion/supposition.js +0 -16
- package/src/node/proofAssertion.js +0 -23
- package/src/node/property.js +0 -28
- package/src/node/propertyRelation.js +0 -30
- package/src/node/qualification.js +0 -23
- package/src/node/reference.js +0 -16
- package/src/node/rule.js +0 -51
- package/src/node/section.js +0 -44
- package/src/node/signature.js +0 -16
- package/src/node/statement.js +0 -167
- package/src/node/subDerivation.js +0 -19
- package/src/node/subproof.js +0 -35
- package/src/node/substitution/frame.js +0 -37
- package/src/node/substitution/reference.js +0 -38
- package/src/node/substitution/statement.js +0 -70
- package/src/node/substitution/term.js +0 -38
- package/src/node/substitution.js +0 -7
- package/src/node/term.js +0 -75
- package/src/node/topLevelAssertion/axiom.js +0 -13
- package/src/node/topLevelAssertion/conjecture.js +0 -13
- package/src/node/topLevelAssertion/lemma.js +0 -13
- package/src/node/topLevelAssertion/theorem.js +0 -13
- package/src/node/topLevelAssertion.js +0 -58
- package/src/node/topLevelMetaAssertion/metaLemma.js +0 -13
- package/src/node/topLevelMetaAssertion/metatheorem.js +0 -13
- package/src/node/topLevelMetaAssertion.js +0 -51
- package/src/node/type.js +0 -74
- package/src/node/typePrefix.js +0 -26
- package/src/node/types.js +0 -16
- package/src/node/variable.js +0 -26
- package/src/nominal/lexer.js +0 -5
- package/src/nominal/parser.js +0 -12
- package/src/nonTerminalNodeMap.js +0 -261
- package/src/pass/zip.js +0 -19
- package/src/preamble.js +0 -64
- package/src/process/assign.js +0 -53
- package/src/process/discharge.js +0 -33
- package/src/process/equate.js +0 -94
- package/src/process/instantiate.js +0 -198
- package/src/process/unification.js +0 -332
- package/src/process/unify.js +0 -504
- package/src/process/validate.js +0 -174
- package/src/process/validation.js +0 -410
- package/src/process/verify.js +0 -299
- package/src/ruleNames.js +0 -86
- package/src/tokenTypes.js +0 -4
- package/src/utilities/assignment.js +0 -57
- package/src/utilities/bnf.js +0 -20
- package/src/utilities/brackets.js +0 -87
- package/src/utilities/breakPoint.js +0 -29
- package/src/utilities/context.js +0 -223
- package/src/utilities/element.js +0 -2293
- package/src/utilities/equivalence.js +0 -25
- package/src/utilities/equivalences.js +0 -158
- package/src/utilities/instance.js +0 -40
- package/src/utilities/json.js +0 -1273
- package/src/utilities/string.js +0 -282
- package/src/utilities/substitutions.js +0 -93
- package/src/utilities/synoptic.js +0 -135
- package/src/utilities/type.js +0 -19
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { ruleFromRuleName } from "../utilities/bnf";
|
|
4
|
-
import { TERM_RULE_NAME,
|
|
5
|
-
TYPE_RULE_NAME,
|
|
6
|
-
FRAME_RULE_NAME,
|
|
7
|
-
LABEL_RULE_NAME,
|
|
8
|
-
PREMISE_RULE_NAME,
|
|
9
|
-
VARIABLE_RULE_NAME,
|
|
10
|
-
EQUALITY_RULE_NAME,
|
|
11
|
-
PROPERTY_RULE_NAME,
|
|
12
|
-
JUDGEMENT_RULE_NAME,
|
|
13
|
-
DEDUCTION_RULE_NAME,
|
|
14
|
-
PARAMETER_RULE_NAME,
|
|
15
|
-
STATEMENT_RULE_NAME,
|
|
16
|
-
REFERENCE_RULE_NAME,
|
|
17
|
-
SIGNATURE_RULE_NAME,
|
|
18
|
-
COMBINATOR_RULE_NAME,
|
|
19
|
-
CONCLUSION_RULE_NAME,
|
|
20
|
-
HYPOTHESIS_RULE_NAME,
|
|
21
|
-
ASSUMPTION_RULE_NAME,
|
|
22
|
-
TYPE_PREFIX_RULE_NAME,
|
|
23
|
-
SUPPOSITION_RULE_NAME,
|
|
24
|
-
CONSTRUCTOR_RULE_NAME,
|
|
25
|
-
EQUIVALENCE_RULE_NAME,
|
|
26
|
-
METAVARIABLE_RULE_NAME,
|
|
27
|
-
TYPE_ASSERTION_RULE_NAME,
|
|
28
|
-
PROCEDURE_CALL_RULE_NAME,
|
|
29
|
-
PROPERTY_RELATION_RULE_NAME,
|
|
30
|
-
DEFINED_ASSERTION_RULE_NAME,
|
|
31
|
-
TERM_SUBSTITUTION_RULE_NAME,
|
|
32
|
-
PROPERTY_ASSERTION_RULE_NAME,
|
|
33
|
-
SUBPROOF_ASSERTION_RULE_NAME,
|
|
34
|
-
FRAME_SUBSTITUTION_RULE_NAME,
|
|
35
|
-
PROCEDURE_REFERENCE_RULE_NAME,
|
|
36
|
-
CONTAINED_ASSERTION_RULE_NAME,
|
|
37
|
-
SIGNATURE_ASSERTION_RULE_NAME,
|
|
38
|
-
META_LEVEL_ASSUMPTION_RULE_NAME,
|
|
39
|
-
STATEMENT_SUBSTITUTION_RULE_NAME,
|
|
40
|
-
REFERENCE_SUBSTITUTION_RULE_NAME } from "../ruleNames";
|
|
41
|
-
|
|
42
|
-
const termPlaceholderRule = ruleFromRuleName(TERM_RULE_NAME),
|
|
43
|
-
typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME),
|
|
44
|
-
framePlaceholderRule = ruleFromRuleName(FRAME_RULE_NAME),
|
|
45
|
-
labelPlaceholderRule = ruleFromRuleName(LABEL_RULE_NAME),
|
|
46
|
-
premisePlaceholderRule = ruleFromRuleName(PREMISE_RULE_NAME),
|
|
47
|
-
variablePlaceholderRule = ruleFromRuleName(VARIABLE_RULE_NAME),
|
|
48
|
-
equalityPlaceholderRule = ruleFromRuleName(EQUALITY_RULE_NAME),
|
|
49
|
-
propertyPlaceholderRule = ruleFromRuleName(PROPERTY_RULE_NAME),
|
|
50
|
-
judgementlaceholderRule = ruleFromRuleName(JUDGEMENT_RULE_NAME),
|
|
51
|
-
deductionPlaceholderRule = ruleFromRuleName(DEDUCTION_RULE_NAME),
|
|
52
|
-
parameterPlaceholderRule = ruleFromRuleName(PARAMETER_RULE_NAME),
|
|
53
|
-
statementPlaceholderRule = ruleFromRuleName(STATEMENT_RULE_NAME),
|
|
54
|
-
referencePlaceholderRule = ruleFromRuleName(REFERENCE_RULE_NAME),
|
|
55
|
-
signaturePlaceholderRule = ruleFromRuleName(SIGNATURE_RULE_NAME),
|
|
56
|
-
combinatorPlaceholderRule = ruleFromRuleName(COMBINATOR_RULE_NAME),
|
|
57
|
-
conclusionPlaceholderRule = ruleFromRuleName(CONCLUSION_RULE_NAME),
|
|
58
|
-
hypothesisPlaceholderRule = ruleFromRuleName(HYPOTHESIS_RULE_NAME),
|
|
59
|
-
assumptionPlaceholderRule = ruleFromRuleName(ASSUMPTION_RULE_NAME),
|
|
60
|
-
typePrefixPlaceholderRule = ruleFromRuleName(TYPE_PREFIX_RULE_NAME),
|
|
61
|
-
suppositionPlaceholderRule = ruleFromRuleName(SUPPOSITION_RULE_NAME),
|
|
62
|
-
constructorPlaceholderRule = ruleFromRuleName(CONSTRUCTOR_RULE_NAME),
|
|
63
|
-
equivalencePlaceholderRule = ruleFromRuleName(EQUIVALENCE_RULE_NAME),
|
|
64
|
-
metavariablePlaceholderRule = ruleFromRuleName(METAVARIABLE_RULE_NAME),
|
|
65
|
-
typeAssertionPlaceholderRule = ruleFromRuleName(TYPE_ASSERTION_RULE_NAME),
|
|
66
|
-
procedureCallPlaceholderRule = ruleFromRuleName(PROCEDURE_CALL_RULE_NAME),
|
|
67
|
-
propertyRelationlaceholderRule = ruleFromRuleName(PROPERTY_RELATION_RULE_NAME),
|
|
68
|
-
definedAssertionPlaceholderRule = ruleFromRuleName(DEFINED_ASSERTION_RULE_NAME),
|
|
69
|
-
termSubstitutionPlaceholderRule = ruleFromRuleName(TERM_SUBSTITUTION_RULE_NAME),
|
|
70
|
-
subproofAssertionlaceholderRule = ruleFromRuleName(SUBPROOF_ASSERTION_RULE_NAME),
|
|
71
|
-
propertyAssertionPlaceholderRule = ruleFromRuleName(PROPERTY_ASSERTION_RULE_NAME),
|
|
72
|
-
frameSubstitutionPlaceholderRule = ruleFromRuleName(FRAME_SUBSTITUTION_RULE_NAME),
|
|
73
|
-
procedureReferencelaceholderRule = ruleFromRuleName(PROCEDURE_REFERENCE_RULE_NAME),
|
|
74
|
-
containedAssertionPlaceholderRule = ruleFromRuleName(CONTAINED_ASSERTION_RULE_NAME),
|
|
75
|
-
signatureAssertionPlaceholderRule = ruleFromRuleName(SIGNATURE_ASSERTION_RULE_NAME),
|
|
76
|
-
metaLevelAssumptionPlaceholderRule = ruleFromRuleName(META_LEVEL_ASSUMPTION_RULE_NAME),
|
|
77
|
-
statementSubstitutionPlaceholderRule = ruleFromRuleName(STATEMENT_SUBSTITUTION_RULE_NAME),
|
|
78
|
-
referenceSubstitutionPlaceholderRule = ruleFromRuleName(REFERENCE_SUBSTITUTION_RULE_NAME);
|
|
79
|
-
|
|
80
|
-
export function instantiatePremise(string, context) {
|
|
81
|
-
string = `${string}
|
|
82
|
-
`; ///
|
|
83
|
-
|
|
84
|
-
return instantiate(premisePlaceholderRule, string, context);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export function instantiateDeduction(string, context) {
|
|
88
|
-
string = `${string}
|
|
89
|
-
`; ///
|
|
90
|
-
|
|
91
|
-
return instantiate(deductionPlaceholderRule, string, context);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function instantiateConclusion(string, context) {
|
|
95
|
-
string = `${string}
|
|
96
|
-
`; ///
|
|
97
|
-
|
|
98
|
-
return instantiate(conclusionPlaceholderRule, string, context);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export function instantiateSupposition(string, context) {
|
|
102
|
-
string = `${string}
|
|
103
|
-
`; ///
|
|
104
|
-
|
|
105
|
-
return instantiate(suppositionPlaceholderRule, string, context);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export function instantiateTerm(string, context) { return instantiate(termPlaceholderRule, string, context); }
|
|
109
|
-
|
|
110
|
-
export function instantiateType(string, context) { return instantiate(typePlaceholderRule, string, context); }
|
|
111
|
-
|
|
112
|
-
export function instantiateFrame(string, context) { return instantiate(framePlaceholderRule, string, context); }
|
|
113
|
-
|
|
114
|
-
export function instantiateLabel(string, context) { return instantiate(labelPlaceholderRule, string, context); }
|
|
115
|
-
|
|
116
|
-
export function instantiateVariable(string, context) { return instantiate(variablePlaceholderRule, string, context); }
|
|
117
|
-
|
|
118
|
-
export function instantiateEquality(string, context) { return instantiate(equalityPlaceholderRule, string, context); }
|
|
119
|
-
|
|
120
|
-
export function instantiateProperty(string, context) { return instantiate(propertyPlaceholderRule, string, context); }
|
|
121
|
-
|
|
122
|
-
export function instantiateJudgement(string, context) { return instantiate(judgementlaceholderRule, string, context); }
|
|
123
|
-
|
|
124
|
-
export function instantiateParameter(string, context) { return instantiate(parameterPlaceholderRule, string, context); }
|
|
125
|
-
|
|
126
|
-
export function instantiateStatement(string, context) { return instantiate(statementPlaceholderRule, string, context); }
|
|
127
|
-
|
|
128
|
-
export function instantiateReference(string, context) { return instantiate(referencePlaceholderRule, string, context); }
|
|
129
|
-
|
|
130
|
-
export function instantiateSignature(string, context) { return instantiate(signaturePlaceholderRule, string, context); }
|
|
131
|
-
|
|
132
|
-
export function instantiateCombinator(string, context) { return instantiate(combinatorPlaceholderRule, string, context); }
|
|
133
|
-
|
|
134
|
-
export function instantiateHypothesis(string, context) { return instantiate(hypothesisPlaceholderRule, string, context); }
|
|
135
|
-
|
|
136
|
-
export function instantiateAssumption(string, context) { return instantiate(assumptionPlaceholderRule, string, context); }
|
|
137
|
-
|
|
138
|
-
export function instantiateTypePrefix(string, context) { return instantiate(typePrefixPlaceholderRule, string, context); }
|
|
139
|
-
|
|
140
|
-
export function instantiateConstructor(string, context) { return instantiate(constructorPlaceholderRule, string, context); }
|
|
141
|
-
|
|
142
|
-
export function instantiateEquivalence(string, context) { return instantiate(equivalencePlaceholderRule, string, context); }
|
|
143
|
-
|
|
144
|
-
export function instantiateMetavariable(string, context) { return instantiate(metavariablePlaceholderRule, string, context); }
|
|
145
|
-
|
|
146
|
-
export function instantiateTypeAssertion(string, context) { return instantiate(typeAssertionPlaceholderRule, string, context); }
|
|
147
|
-
|
|
148
|
-
export function instantiateProcedureCall(string, context) { return instantiate(procedureCallPlaceholderRule, string, context); }
|
|
149
|
-
|
|
150
|
-
export function instantiatePropertyRelation(string, context) { return instantiate(propertyRelationlaceholderRule, string, context); }
|
|
151
|
-
|
|
152
|
-
export function instantiateDefinedAssertion(string, context) { return instantiate(definedAssertionPlaceholderRule, string, context); }
|
|
153
|
-
|
|
154
|
-
export function instantiateTermSubstitution(string, context) { return instantiate(termSubstitutionPlaceholderRule, string, context); }
|
|
155
|
-
|
|
156
|
-
export function instantiateSubproofAssertion(string, context) { return instantiate(subproofAssertionlaceholderRule, string, context); }
|
|
157
|
-
|
|
158
|
-
export function instantiatePropertyAssertion(string, context) { return instantiate(propertyAssertionPlaceholderRule, string, context); }
|
|
159
|
-
|
|
160
|
-
export function instantiateFrameSubstitution(string, context) { return instantiate(frameSubstitutionPlaceholderRule, string, context); }
|
|
161
|
-
|
|
162
|
-
export function instantiateProcedureReference(string, context) { return instantiate(procedureReferencelaceholderRule, string, context); }
|
|
163
|
-
|
|
164
|
-
export function instantiateContainedAssertion(string, context) { return instantiate(containedAssertionPlaceholderRule, string, context); }
|
|
165
|
-
|
|
166
|
-
export function instantiateSignatureAssertion(string, context) { return instantiate(signatureAssertionPlaceholderRule, string, context); }
|
|
167
|
-
|
|
168
|
-
export function instantiateMetaLevelAssumption(string, context) { return instantiate(metaLevelAssumptionPlaceholderRule, string, context); }
|
|
169
|
-
|
|
170
|
-
export function instantiateStatementSubstitution(string, context) { return instantiate(statementSubstitutionPlaceholderRule, string, context); }
|
|
171
|
-
|
|
172
|
-
export function instantiateReferenceSubstitution(string, context) { return instantiate(referenceSubstitutionPlaceholderRule, string, context); }
|
|
173
|
-
|
|
174
|
-
function instantiate(placeholderRule, string, context) {
|
|
175
|
-
let node;
|
|
176
|
-
|
|
177
|
-
const lexer = context.getLexer(),
|
|
178
|
-
parser = context.getParser(),
|
|
179
|
-
content = `${string}
|
|
180
|
-
`,
|
|
181
|
-
tokens = lexer.tokenise(content);
|
|
182
|
-
|
|
183
|
-
context.setTokens(tokens);
|
|
184
|
-
|
|
185
|
-
const startRule = placeholderRule; ///
|
|
186
|
-
|
|
187
|
-
node = parser.parse(tokens, startRule);
|
|
188
|
-
|
|
189
|
-
const nonTerminalNode = node; ///
|
|
190
|
-
|
|
191
|
-
nonTerminalNode.someChildNode((childNode) => {
|
|
192
|
-
node = childNode; ///
|
|
193
|
-
|
|
194
|
-
return true;
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
return node;
|
|
198
|
-
}
|
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import elements from "../elements";
|
|
4
|
-
|
|
5
|
-
async function unifyStepWithRule(step, context) {
|
|
6
|
-
let stepUnifiesWithRule = false;
|
|
7
|
-
|
|
8
|
-
const reference = step.getReference();
|
|
9
|
-
|
|
10
|
-
if (reference !== null) {
|
|
11
|
-
const rule = context.findRuleByReference(reference);
|
|
12
|
-
|
|
13
|
-
if (rule !== null) {
|
|
14
|
-
const stepString = step.getString(),
|
|
15
|
-
ruleString = rule.getString();
|
|
16
|
-
|
|
17
|
-
context.trace(`Unifying the '${stepString}' step with the '${ruleString}' rule...`);
|
|
18
|
-
|
|
19
|
-
const subproofOrProofAssertions = context.getSubproofOrProofAssertions(),
|
|
20
|
-
stepAndSubproofOrProofAssertionsUnify = await rule.unifyStepAndSubproofOrProofAssertions(step, subproofOrProofAssertions, context);
|
|
21
|
-
|
|
22
|
-
if (stepAndSubproofOrProofAssertionsUnify) {
|
|
23
|
-
stepUnifiesWithRule = true;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (stepUnifiesWithRule) {
|
|
27
|
-
context.debug(`...unified the '${stepString}' step with the '${ruleString}' rule.`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return stepUnifiesWithRule;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async function unifyStepWithTopLevelAssertion(step, context) {
|
|
36
|
-
let stepUnifiesWithTopLevelAssertion = false;
|
|
37
|
-
|
|
38
|
-
const reference = step.getReference();
|
|
39
|
-
|
|
40
|
-
if (reference !== null) {
|
|
41
|
-
const topLevelAssertion = context.findTopLevelAssertionByReference(reference);
|
|
42
|
-
|
|
43
|
-
if (topLevelAssertion !== null) {
|
|
44
|
-
const satisfiable = topLevelAssertion.isSatisfiable();
|
|
45
|
-
|
|
46
|
-
if (!satisfiable) {
|
|
47
|
-
const stepString = step.getString(),
|
|
48
|
-
topLevelAssertionString = reference.getString();
|
|
49
|
-
|
|
50
|
-
context.trace(`Unifying the '${stepString}' step with the '${topLevelAssertionString}' top level assertion...`);
|
|
51
|
-
|
|
52
|
-
const subproofOrProofAssertions = context.getSubproofOrProofAssertions(),
|
|
53
|
-
stepAndSubproofOrProofAssertionsUnify = await topLevelAssertion.unifyStepAndSubproofOrProofAssertions(step, subproofOrProofAssertions, context);
|
|
54
|
-
|
|
55
|
-
if (stepAndSubproofOrProofAssertionsUnify) {
|
|
56
|
-
stepUnifiesWithTopLevelAssertion = true;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (stepUnifiesWithTopLevelAssertion) {
|
|
60
|
-
context.debug(`...unified the '${stepString}' step with the '${topLevelAssertionString}' top level assertion.`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return stepUnifiesWithTopLevelAssertion;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async function unifyStepWithSignatureAssertion(step, context) {
|
|
70
|
-
let stepUnifiesWithSignatureAssertion = false;
|
|
71
|
-
|
|
72
|
-
const signatureAssertion = step.getSignatureAssertion();
|
|
73
|
-
|
|
74
|
-
if (signatureAssertion !== null) {
|
|
75
|
-
const stepString = step.getString(),
|
|
76
|
-
signatureAssertionString = signatureAssertion.getString();
|
|
77
|
-
|
|
78
|
-
context.trace(`Unifying the '${stepString}' step with the '${signatureAssertionString}' signature assertion...`);
|
|
79
|
-
|
|
80
|
-
const subproofOrProofAssertions = context.getSubproofOrProofAssertions(),
|
|
81
|
-
stepAndSubproofOrProofAssertionsUnify = await signatureAssertion.unifyStepAndSubproofOrProofAssertions(step, subproofOrProofAssertions, context);
|
|
82
|
-
|
|
83
|
-
if (stepAndSubproofOrProofAssertionsUnify) {
|
|
84
|
-
stepUnifiesWithSignatureAssertion = true;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (stepUnifiesWithSignatureAssertion) {
|
|
88
|
-
context.debug(`...unified the '${stepString}' step with the '${signatureAssertionString}' signature assertion.`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return stepUnifiesWithSignatureAssertion;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async function unifyStepAsUnqualifiedEquality(step, context) {
|
|
96
|
-
let stepUnifiesAUnqualifiedEquality = false;
|
|
97
|
-
|
|
98
|
-
const unqualified = step.isUnqualified();
|
|
99
|
-
|
|
100
|
-
if (unqualified) {
|
|
101
|
-
const { Equality } = elements,
|
|
102
|
-
statement = step.getStatement(),
|
|
103
|
-
equality = Equality.fromStatement(statement, context);
|
|
104
|
-
|
|
105
|
-
if (equality !== null) {
|
|
106
|
-
const stepString = step.getString();
|
|
107
|
-
|
|
108
|
-
context.trace(`Unifying the '${stepString}' step as an unqualified equality...`);
|
|
109
|
-
|
|
110
|
-
stepUnifiesAUnqualifiedEquality = true;
|
|
111
|
-
|
|
112
|
-
if (stepUnifiesAUnqualifiedEquality) {
|
|
113
|
-
context.debug(`...unified the '${stepString}' step as an unqualified equality.`);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
return stepUnifiesAUnqualifiedEquality;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
async function unifyStepAsUNqualifiedJudgement(step, context) {
|
|
122
|
-
let stepUnifiesAsUnqualifiedJudgement = false;
|
|
123
|
-
|
|
124
|
-
const unqualified = step.isUnqualified();
|
|
125
|
-
|
|
126
|
-
if (unqualified) {
|
|
127
|
-
const { Judgement } = elements,
|
|
128
|
-
statement = step.getStatement(),
|
|
129
|
-
judgement = Judgement.fromStatement(statement, context);
|
|
130
|
-
|
|
131
|
-
if (judgement !== null) {
|
|
132
|
-
const stepString = step.getString();
|
|
133
|
-
|
|
134
|
-
context.trace(`Unifying the '${stepString}' step as an unqualified judgement...`);
|
|
135
|
-
|
|
136
|
-
stepUnifiesAsUnqualifiedJudgement = true;
|
|
137
|
-
|
|
138
|
-
if (stepUnifiesAsUnqualifiedJudgement) {
|
|
139
|
-
context.debug(`...unified the '${stepString}' step as an unqualified judgement.`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
return stepUnifiesAsUnqualifiedJudgement;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
async function unifyStepAsUnqualifiedTypeAssertion(step, context) {
|
|
148
|
-
let stepUnifiesAsUnqualifiedTypeAssertion = false;
|
|
149
|
-
|
|
150
|
-
const unqualified = step.isUnqualified();
|
|
151
|
-
|
|
152
|
-
if (unqualified) {
|
|
153
|
-
const { TypeAssertion } = elements,
|
|
154
|
-
statement = step.getStatement(),
|
|
155
|
-
typeAssertion = TypeAssertion.fromStatement(statement, context);
|
|
156
|
-
|
|
157
|
-
if (typeAssertion !== null) {
|
|
158
|
-
const stepString = step.getString();
|
|
159
|
-
|
|
160
|
-
context.trace(`Unifying the '${stepString}' step as an unqualified type assertion...`);
|
|
161
|
-
|
|
162
|
-
stepUnifiesAsUnqualifiedTypeAssertion = true;
|
|
163
|
-
|
|
164
|
-
if (stepUnifiesAsUnqualifiedTypeAssertion) {
|
|
165
|
-
context.debug(`...unified the '${stepString}' step as an unqualified type assertion.`);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
return stepUnifiesAsUnqualifiedTypeAssertion;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
async function unifyStepAsUnqualifiedPropertyAssertion(step, context) {
|
|
174
|
-
let stepUnifiesAsUnqualifiedPropertyAssertion = false;
|
|
175
|
-
|
|
176
|
-
const unqualified = step.isUnqualified();
|
|
177
|
-
|
|
178
|
-
if (unqualified) {
|
|
179
|
-
const { PropertyAssertion } = elements,
|
|
180
|
-
statement = step.getStatement(),
|
|
181
|
-
propertyAssertion = PropertyAssertion.fromStatement(statement, context);
|
|
182
|
-
|
|
183
|
-
if (propertyAssertion !== null) {
|
|
184
|
-
const stepString = step.getString();
|
|
185
|
-
|
|
186
|
-
context.trace(`Unifying the '${stepString}' step as an unqualified property assertion...`);
|
|
187
|
-
|
|
188
|
-
stepUnifiesAsUnqualifiedPropertyAssertion = true;
|
|
189
|
-
|
|
190
|
-
if (stepUnifiesAsUnqualifiedPropertyAssertion) {
|
|
191
|
-
context.debug(`...unified the '${stepString}' step as an unqualified property assertion.`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return stepUnifiesAsUnqualifiedPropertyAssertion;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
async function unifyStepAsUnqualifiedSignatureAssertion(step, context) {
|
|
200
|
-
let stepUnifiesAsUnqualifiedSignatureAssertion = false;
|
|
201
|
-
|
|
202
|
-
const unqualified = step.isUnqualified();
|
|
203
|
-
|
|
204
|
-
if (unqualified) {
|
|
205
|
-
const { SignatureAssertion } = elements,
|
|
206
|
-
statement = step.getStatement(),
|
|
207
|
-
signatureAssertion = SignatureAssertion.fromStatement(statement, context);
|
|
208
|
-
|
|
209
|
-
if (signatureAssertion !== null) {
|
|
210
|
-
const stepString = step.getString();
|
|
211
|
-
|
|
212
|
-
context.trace(`Unifying the '${stepString}' step as a signature assertion...`);
|
|
213
|
-
|
|
214
|
-
stepUnifiesAsUnqualifiedSignatureAssertion = true;
|
|
215
|
-
|
|
216
|
-
if (stepUnifiesAsUnqualifiedSignatureAssertion) {
|
|
217
|
-
context.debug(`...unified the '${stepString}' step as a signature assertion.`);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return stepUnifiesAsUnqualifiedSignatureAssertion;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
async function unifyStepAsQualifiedMetaLevelAssumption(step, context) {
|
|
226
|
-
let stepUnifiesAsQualifiedMetaLevelAssumption = false;
|
|
227
|
-
|
|
228
|
-
const metaLevel = context.isMetaLevel();
|
|
229
|
-
|
|
230
|
-
if (metaLevel) {
|
|
231
|
-
const reference = step.getReference();
|
|
232
|
-
|
|
233
|
-
if (reference !== null) {
|
|
234
|
-
const stepString = step.getString(),
|
|
235
|
-
referenceString = reference.getString();
|
|
236
|
-
|
|
237
|
-
context.trace(`Unifying the '${stepString}' step as a meta-level assumption with the '${referenceString}' reference...`);
|
|
238
|
-
|
|
239
|
-
let metaLevelAssumption;
|
|
240
|
-
|
|
241
|
-
const { MetaLevelAssumption } = elements;
|
|
242
|
-
|
|
243
|
-
metaLevelAssumption = MetaLevelAssumption.fromStep(step, context);
|
|
244
|
-
|
|
245
|
-
metaLevelAssumption = metaLevelAssumption.validate(context); ///
|
|
246
|
-
|
|
247
|
-
if (metaLevelAssumption !== null) {
|
|
248
|
-
stepUnifiesAsQualifiedMetaLevelAssumption = true;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
if (stepUnifiesAsQualifiedMetaLevelAssumption) {
|
|
252
|
-
context.debug(`...unified the '${stepString}' step as a meta-level assumption with the '${referenceString}' reference.`);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
return stepUnifiesAsQualifiedMetaLevelAssumption;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
async function unifyStepAsQualifiedSignatureAssertion(step, context) {
|
|
261
|
-
let stepUnifiesAsQualifiedSignatureAssertion = false;
|
|
262
|
-
|
|
263
|
-
const reference = step.getReference();
|
|
264
|
-
|
|
265
|
-
if (reference !== null) {
|
|
266
|
-
const topLevelAssertion = context.findTopLevelAssertionByReference(reference);
|
|
267
|
-
|
|
268
|
-
if (topLevelAssertion !== null) {
|
|
269
|
-
const statementNode = step.getStatementNode(),
|
|
270
|
-
signatureAssertionNode = statementNode.getSignatureAssertionNode();
|
|
271
|
-
|
|
272
|
-
if (signatureAssertionNode !== null) {
|
|
273
|
-
const stepString = step.getString(),
|
|
274
|
-
referenceString = reference.getString(),
|
|
275
|
-
signatureAssertion = context.findAssertionByAssertionNode(signatureAssertionNode);
|
|
276
|
-
|
|
277
|
-
context.trace(`Unifying the '${stepString}' step as a signature assertion with the '${referenceString}' reference...`);
|
|
278
|
-
|
|
279
|
-
const unifyTopLevelAssertion = await signatureAssertion.unifyTopLevelAssertion(topLevelAssertion, context);
|
|
280
|
-
|
|
281
|
-
if (unifyTopLevelAssertion) {
|
|
282
|
-
stepUnifiesAsQualifiedSignatureAssertion = true;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
if (stepUnifiesAsQualifiedSignatureAssertion) {
|
|
286
|
-
context.debug(`...unified the '${stepString}' step as a signature assertion with the '${referenceString}' reference.`);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
return stepUnifiesAsQualifiedSignatureAssertion;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
async function compareStepWithSubproofOrProofAssertions(step, context) {
|
|
296
|
-
let stepComparesToSubproofOrProofAssertions = false;
|
|
297
|
-
|
|
298
|
-
const unqualified = step.isUnqualified();
|
|
299
|
-
|
|
300
|
-
if (unqualified) {
|
|
301
|
-
const stepString = step.getString();
|
|
302
|
-
|
|
303
|
-
context.trace(`Comparing the '${stepString}' step with the subproofs or proof asssertions...`);
|
|
304
|
-
|
|
305
|
-
const subproofOrProofAssertions = context.getSubproofOrProofAssertions(),
|
|
306
|
-
comparesToSubproofOrProofAssertions = step.compareSubproofOrProofAssertions(subproofOrProofAssertions, context);
|
|
307
|
-
|
|
308
|
-
if (comparesToSubproofOrProofAssertions) {
|
|
309
|
-
stepComparesToSubproofOrProofAssertions = true;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
if (stepComparesToSubproofOrProofAssertions) {
|
|
313
|
-
context.debug(`...compared the '${stepString}' step with the subproofs or proof asssertions.`);
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
return stepComparesToSubproofOrProofAssertions;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
export const unifySteps = [
|
|
321
|
-
unifyStepWithRule,
|
|
322
|
-
unifyStepWithTopLevelAssertion,
|
|
323
|
-
unifyStepWithSignatureAssertion,
|
|
324
|
-
unifyStepAsUnqualifiedEquality,
|
|
325
|
-
unifyStepAsUNqualifiedJudgement,
|
|
326
|
-
unifyStepAsUnqualifiedTypeAssertion,
|
|
327
|
-
unifyStepAsUnqualifiedPropertyAssertion,
|
|
328
|
-
unifyStepAsUnqualifiedSignatureAssertion,
|
|
329
|
-
unifyStepAsQualifiedMetaLevelAssumption,
|
|
330
|
-
unifyStepAsQualifiedSignatureAssertion,
|
|
331
|
-
compareStepWithSubproofOrProofAssertions
|
|
332
|
-
];
|