occam-verify-cli 1.0.984 → 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 +5 -6
- 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
package/src/ruleNames.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export const RULE_RULE_NAME = "rule";
|
|
4
|
-
export const STEP_RULE_NAME = "step";
|
|
5
|
-
export const TERM_RULE_NAME = "term";
|
|
6
|
-
export const TYPE_RULE_NAME = "type";
|
|
7
|
-
export const TYPES_RULE_NAME = "types";
|
|
8
|
-
export const LEMMA_RULE_NAME = "lemma";
|
|
9
|
-
export const AXIOM_RULE_NAME = "axiom";
|
|
10
|
-
export const ERROR_RULE_NAME = "error";
|
|
11
|
-
export const FRAME_RULE_NAME = "frame";
|
|
12
|
-
export const PROOF_RULE_NAME = "proof";
|
|
13
|
-
export const LABEL_RULE_NAME = "label";
|
|
14
|
-
export const LABELS_RULE_NAME = "labels";
|
|
15
|
-
export const THEOREM_RULE_NAME = "theorem";
|
|
16
|
-
export const PREMISE_RULE_NAME = "premise";
|
|
17
|
-
export const SECTION_RULE_NAME = "section";
|
|
18
|
-
export const ARGUMENT_RULE_NAME = "argument";
|
|
19
|
-
export const PROPERTY_RULE_NAME = "property";
|
|
20
|
-
export const EQUALITY_RULE_NAME = "equality";
|
|
21
|
-
export const VARIABLE_RULE_NAME = "variable";
|
|
22
|
-
export const SUBPROOF_RULE_NAME = "subproof";
|
|
23
|
-
export const DOCUMENT_RULE_NAME = "document";
|
|
24
|
-
export const RULE_BODY_RULE_NAME = "ruleBody";
|
|
25
|
-
export const META_TYPE_RULE_NAME = "metaType";
|
|
26
|
-
export const SIGNATURE_RULE_NAME = "signature";
|
|
27
|
-
export const PARAMETER_RULE_NAME = "parameter";
|
|
28
|
-
export const DEDUCTION_RULE_NAME = "deduction";
|
|
29
|
-
export const JUDGEMENT_RULE_NAME = "judgement";
|
|
30
|
-
export const REFERENCE_RULE_NAME = "reference";
|
|
31
|
-
export const STATEMENT_RULE_NAME = "statement";
|
|
32
|
-
export const META_LEMMA_RULE_NAME = "metaLemma";
|
|
33
|
-
export const AXIOM_BODY_RULE_NAME = "axiomBody";
|
|
34
|
-
export const LEMMA_BODY_RULE_NAME = "lemmaBody";
|
|
35
|
-
export const COMBINATOR_RULE_NAME = "combinator";
|
|
36
|
-
export const CONCLUSION_RULE_NAME = "conclusion";
|
|
37
|
-
export const CONJECTURE_RULE_NAME = "conjecture";
|
|
38
|
-
export const DERIVATION_RULE_NAME = "derivation";
|
|
39
|
-
export const HYPOTHESIS_RULE_NAME = "hypothesis";
|
|
40
|
-
export const ASSUMPTION_RULE_NAME = "assumption";
|
|
41
|
-
export const PLACEHOLDER_RULE_NAME = "_"; ///
|
|
42
|
-
export const RULE_HEADER_RULE_NAME = "ruleHeader";
|
|
43
|
-
export const TYPE_PREFIX_RULE_NAME = "typePrefix";
|
|
44
|
-
export const SUPPOSITION_RULE_NAME = "supposition";
|
|
45
|
-
export const CONSTRUCTOR_RULE_NAME = "constructor";
|
|
46
|
-
export const METATHEOREM_RULE_NAME = "metatheorem";
|
|
47
|
-
export const EQUIVALENCE_RULE_NAME = "equivalence";
|
|
48
|
-
export const AXIOM_HEADER_RULE_NAME = "axiomHeader";
|
|
49
|
-
export const LEMMA_HEADER_RULE_NAME = "lemmaHeader";
|
|
50
|
-
export const THEOREM_BODY_RULE_NAME = "theoremBody";
|
|
51
|
-
export const METAVARIABLE_RULE_NAME = "metavariable";
|
|
52
|
-
export const EQUIVALENCES_RULE_NAME = "equivalences";
|
|
53
|
-
export const META_ARGUMENT_RULE_NAME = "metaArgument";
|
|
54
|
-
export const QUALIFICATION_RULE_NAME = "qualification";
|
|
55
|
-
export const PROCEDURE_CALL_RULE_NAME = "procedureCall";
|
|
56
|
-
export const SUB_DERIVATION_RULE_NAME = "subDerivation";
|
|
57
|
-
export const TYPE_ASSERTION_RULE_NAME = "typeAssertion";
|
|
58
|
-
export const THEOREM_HEADER_RULE_NAME = "theoremHeader";
|
|
59
|
-
export const META_LEMMA_BODY_RULE_NAME = "metaLemmaBody";
|
|
60
|
-
export const CONJECTURE_BODY_RULE_NAME = "conjectureBody";
|
|
61
|
-
export const METATHEOREM_BODY_RULE_NAME = "metatheoremBody";
|
|
62
|
-
export const META_LEMMA_HEADER_RULE_NAME = "metaLemmaHeader";
|
|
63
|
-
export const CONJECTURE_HEADER_RULE_NAME = "conjectureHeader";
|
|
64
|
-
export const PROPERTY_RELATION_RULE_NAME = "propertyRelation";
|
|
65
|
-
export const DEFINED_ASSERTION_RULE_NAME = "definedAssertion";
|
|
66
|
-
export const TERM_SUBSTITUTION_RULE_NAME = "termSubstitution";
|
|
67
|
-
export const METATHEOREM_HEADER_RULE_NAME = "metatheoremHeader";
|
|
68
|
-
export const PROPERTY_ASSERTION_RULE_NAME = "propertyAssertion";
|
|
69
|
-
export const SUBPROOF_ASSERTION_RULE_NAME = "subproofAssertion";
|
|
70
|
-
export const FRAME_SUBSTITUTION_RULE_NAME = "frameSubstitution";
|
|
71
|
-
export const PARENTHESISED_LABEL_RULE_NAME = "parenthesisedLabel";
|
|
72
|
-
export const PROCEDURE_REFERENCE_RULE_NAME = "procedureReference";
|
|
73
|
-
export const CONTAINED_ASSERTION_RULE_NAME = "containedAssertion";
|
|
74
|
-
export const SIGNATURE_ASSERTION_RULE_NAME = "signatureAssertion";
|
|
75
|
-
export const PARENTHESISED_LABELS_RULE_NAME = "parenthesisedLabels";
|
|
76
|
-
export const PROPERTY_DECLARATION_RULE_NAME = "propertyDeclaration";
|
|
77
|
-
export const VARIABLE_DECLARATION_RULE_NAME = "variableDeclaration";
|
|
78
|
-
export const META_LEVEL_ASSUMPTION_RULE_NAME = "metaLevelAssumption";
|
|
79
|
-
export const COMBINATOR_DECLARATION_RULE_NAME = "combinatorDeclaration";
|
|
80
|
-
export const STATEMENT_SUBSTITUTION_RULE_NAME = "statementSubstitution";
|
|
81
|
-
export const REFERENCE_SUBSTITUTION_RULE_NAME = "referenceSubstitution";
|
|
82
|
-
export const TYPE_PREFIX_DECLARATION_RULE_NAME = "typePrefixDeclaration";
|
|
83
|
-
export const SIMPLE_TYPE_DECLARATION_RULE_NAME = "simpleTypeDeclaration";
|
|
84
|
-
export const CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
|
|
85
|
-
export const COMPLEX_TYPE_DECLARATION_RULE_NAME = "complexTypeDeclaration";
|
|
86
|
-
export const METAVARIABLE_DECLARATION_RULE_NAME = "metavariableDeclaration";
|
package/src/tokenTypes.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { variableFromVariableNode } from "../utilities/element";
|
|
4
|
-
|
|
5
|
-
export function variableAssignmentFromTermAndType(term, type, context) {
|
|
6
|
-
let variableAssignment = (context) => {
|
|
7
|
-
///
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const termSingular = term.isSingular();
|
|
11
|
-
|
|
12
|
-
if (termSingular) {
|
|
13
|
-
const termType = term.getType(),
|
|
14
|
-
termTypeEqualToType = termType.isEqualTo(type),
|
|
15
|
-
termTypeSuperTypeOfType = termType.isSuperTypeOf(type);
|
|
16
|
-
|
|
17
|
-
if (false) {
|
|
18
|
-
///
|
|
19
|
-
} else if (termTypeEqualToType) {
|
|
20
|
-
const termProvisional = term.isProvisional();
|
|
21
|
-
|
|
22
|
-
if (termProvisional) {
|
|
23
|
-
const type = term.getType(),
|
|
24
|
-
variableNode = term.getVariableNode(),
|
|
25
|
-
variable = variableFromVariableNode(variableNode, context),
|
|
26
|
-
provisional = false;
|
|
27
|
-
|
|
28
|
-
variable.setType(type);
|
|
29
|
-
|
|
30
|
-
variable.setProvisional(provisional);
|
|
31
|
-
|
|
32
|
-
variableAssignment = (context) => {
|
|
33
|
-
const declaredVariable = variable; ///
|
|
34
|
-
|
|
35
|
-
context.addDeclaredVariable(declaredVariable);
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
} else if (termTypeSuperTypeOfType) {
|
|
39
|
-
const termEstablished = term.isEstablished();
|
|
40
|
-
|
|
41
|
-
if (termEstablished) {
|
|
42
|
-
const variableNode = term.getVariableNode(),
|
|
43
|
-
variable = variableFromVariableNode(variableNode, context);
|
|
44
|
-
|
|
45
|
-
variable.setType(type);
|
|
46
|
-
|
|
47
|
-
variableAssignment = (context) => {
|
|
48
|
-
const declaredVariable = variable; ///
|
|
49
|
-
|
|
50
|
-
context.addDeclaredVariable(declaredVariable);
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return variableAssignment;
|
|
57
|
-
}
|
package/src/utilities/bnf.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { BNFLexer } from "occam-lexers";
|
|
4
|
-
import { BNFParser } from "occam-parsers";
|
|
5
|
-
import { arrayUtilities } from "necessary";
|
|
6
|
-
|
|
7
|
-
const { first } = arrayUtilities;
|
|
8
|
-
|
|
9
|
-
const bnfLexer = BNFLexer.fromNothing(),
|
|
10
|
-
bnfParser = BNFParser.fromNothing();
|
|
11
|
-
|
|
12
|
-
export function ruleFromRuleName(ruleName) {
|
|
13
|
-
const bnf = ` _ ::= ${ruleName}... <END_OF_LINE> ; `,
|
|
14
|
-
tokens = bnfLexer.tokensFromBNF(bnf),
|
|
15
|
-
rules = bnfParser.rulesFromTokens(tokens),
|
|
16
|
-
firstRule = first(rules),
|
|
17
|
-
rule = firstRule; ///
|
|
18
|
-
|
|
19
|
-
return rule;
|
|
20
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { termFromTermNode, statementFromStatementNode } from "../utilities/element";
|
|
4
|
-
import { BRACKETED_TERM_DEPTH, BRACKETED_STATEMENT_DEPTH } from "../constants";
|
|
5
|
-
import { bracketedConstructorFromNothing, bracketedCombinatorFromNothing } from "../utilities/instance";
|
|
6
|
-
|
|
7
|
-
export function stripBracketsFromTerm(term, context) {
|
|
8
|
-
const termNode = term.getNode(),
|
|
9
|
-
bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
10
|
-
|
|
11
|
-
if (bracketedTermChildNode !== null) {
|
|
12
|
-
const termNode = bracketedTermChildNode; ///
|
|
13
|
-
|
|
14
|
-
term = termFromTermNode(termNode, context);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return term;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function stripBracketsFromTermNode(termNode) {
|
|
21
|
-
const bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
22
|
-
|
|
23
|
-
if (bracketedTermChildNode !== null) {
|
|
24
|
-
termNode = bracketedTermChildNode; ///
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return termNode;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function stripBracketsFromStatement(statement, context) {
|
|
31
|
-
const statementNode = statement.getNode(),
|
|
32
|
-
bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
|
|
33
|
-
|
|
34
|
-
if (bracketedStatementChildNode !== null) {
|
|
35
|
-
const statementNode = bracketedStatementChildNode; ///
|
|
36
|
-
|
|
37
|
-
statement = statementFromStatementNode(statementNode, context);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return statement;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function stripBracketsFromStatementNode(statementNode) {
|
|
44
|
-
const bracketedStatementChildNode = bracketedStatementChildNodeFromStatementNode(statementNode);
|
|
45
|
-
|
|
46
|
-
if (bracketedStatementChildNode !== null) {
|
|
47
|
-
statementNode = bracketedStatementChildNode; ///
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return statementNode;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function bracketedTermChildNodeFromTermNode(termNode) {
|
|
54
|
-
let bracketedTermChildNode = null;
|
|
55
|
-
|
|
56
|
-
const depth = BRACKETED_TERM_DEPTH,
|
|
57
|
-
bracketedConstructor = bracketedConstructorFromNothing(),
|
|
58
|
-
bracketedConstructorTerm = bracketedConstructor.getTerm(),
|
|
59
|
-
bracketedConstructorTermNode = bracketedConstructorTerm.getNode(),
|
|
60
|
-
termNodeMatchBracketedConstructorNode = termNode.match(bracketedConstructorTermNode, depth);
|
|
61
|
-
|
|
62
|
-
if (termNodeMatchBracketedConstructorNode) {
|
|
63
|
-
const singularTermNode = termNode.getSingularTermNode();
|
|
64
|
-
|
|
65
|
-
bracketedTermChildNode = singularTermNode; ///
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return bracketedTermChildNode;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function bracketedStatementChildNodeFromStatementNode(statementNode) {
|
|
72
|
-
let bracketedStatementChildNode = null;
|
|
73
|
-
|
|
74
|
-
const depth = BRACKETED_STATEMENT_DEPTH,
|
|
75
|
-
bracketedCombinator = bracketedCombinatorFromNothing(),
|
|
76
|
-
bracketedCombinatorStatement = bracketedCombinator.getStatement(),
|
|
77
|
-
bracketedCombinatorStatementnNode = bracketedCombinatorStatement.getNode(),
|
|
78
|
-
statementNodeMatchBracketedCombinatorStatementNode = statementNode.match(bracketedCombinatorStatementnNode, depth);
|
|
79
|
-
|
|
80
|
-
if (statementNodeMatchBracketedCombinatorStatementNode) {
|
|
81
|
-
const singularStatementNode = statementNode.getSingularStatementNode();
|
|
82
|
-
|
|
83
|
-
bracketedStatementChildNode = singularStatementNode; ///
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return bracketedStatementChildNode;
|
|
87
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { BreakPoint } from "occam-languages";
|
|
4
|
-
|
|
5
|
-
export function breakPointFromJSON(json) {
|
|
6
|
-
let breakPoint;
|
|
7
|
-
|
|
8
|
-
({ breakPoint } = json);
|
|
9
|
-
|
|
10
|
-
if (breakPoint !== null) {
|
|
11
|
-
const breakPointJSON = breakPoint; ///
|
|
12
|
-
|
|
13
|
-
json = breakPointJSON; ///
|
|
14
|
-
|
|
15
|
-
breakPoint = BreakPoint.fromJSON(json); ///
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return breakPoint;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function breakPointToBreakPointJSON(breakPoint) {
|
|
22
|
-
let breakPointJSON = null;
|
|
23
|
-
|
|
24
|
-
if (breakPoint !== null) {
|
|
25
|
-
breakPointJSON = breakPoint.toJSON();
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return breakPointJSON;
|
|
29
|
-
}
|
package/src/utilities/context.js
DELETED
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import MnemicContext from "../context/mnemic";
|
|
4
|
-
import NestedContext from "../context/nested";
|
|
5
|
-
import TheticContext from "../context/thetic";
|
|
6
|
-
import AphasicContext from "../context/aphasic";
|
|
7
|
-
import BoundedContext from "../context/bounded";
|
|
8
|
-
import NominalContext from "../context/nominal";
|
|
9
|
-
import LiteralContext from "../context/literal";
|
|
10
|
-
import LiminalContext from "../context/liminal";
|
|
11
|
-
import PhanericContext from "../context/phaneric";
|
|
12
|
-
import IllativeContext from "../context/illative";
|
|
13
|
-
import BranchingContext from "../context/branching";
|
|
14
|
-
import NominalFileContext from "../context/file/nominal";
|
|
15
|
-
|
|
16
|
-
import { mnemicContextFromJSON, mnemicContextsFromJSON, mnemicContextToMnemicContextJSON, mnemicContextsToMnemicContextsJSON } from "../utilities/json";
|
|
17
|
-
|
|
18
|
-
export function evaluate(procedure, terms) {
|
|
19
|
-
const context = procedure.getContext();
|
|
20
|
-
|
|
21
|
-
return procedure.call(terms, context);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function ground(innerFunction) {
|
|
25
|
-
let context;
|
|
26
|
-
|
|
27
|
-
const nominalContext = NominalContext.fromNothing();
|
|
28
|
-
|
|
29
|
-
context = nominalContext; ///
|
|
30
|
-
|
|
31
|
-
const literalContext = LiteralContext.fromNothing(context);
|
|
32
|
-
|
|
33
|
-
context = literalContext; ///
|
|
34
|
-
|
|
35
|
-
return innerFunction(context);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function declare(innerFunction, context) {
|
|
39
|
-
const theticContext = TheticContext.fromNothing(context);
|
|
40
|
-
|
|
41
|
-
context = theticContext; ///
|
|
42
|
-
|
|
43
|
-
return innerFunction(context);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function derive(innerFunction, context) {
|
|
47
|
-
const illativeContext = IllativeContext.fromNothing(context);
|
|
48
|
-
|
|
49
|
-
context = illativeContext; ///
|
|
50
|
-
|
|
51
|
-
return innerFunction(context);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function elide(innerFunction, context) {
|
|
55
|
-
const aphasicContext = AphasicContext.fromNothing(context);
|
|
56
|
-
|
|
57
|
-
context = aphasicContext; ///
|
|
58
|
-
|
|
59
|
-
return innerFunction(context);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function enclose(innerFunction, context) {
|
|
63
|
-
const boundedContext = BoundedContext.fromNothing(context);
|
|
64
|
-
|
|
65
|
-
context = boundedContext; ///
|
|
66
|
-
|
|
67
|
-
return innerFunction(context);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function encapsulate(innerFunction, metaLevelAssumptions, context) {
|
|
71
|
-
const boundedContext = BoundedContext.fromMetaLevelAssumptions(metaLevelAssumptions, context);
|
|
72
|
-
|
|
73
|
-
context = boundedContext; ///
|
|
74
|
-
|
|
75
|
-
return innerFunction(context);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export function choose(innerFunction, context) {
|
|
79
|
-
const branchingContext = BranchingContext.fromNothing(context);
|
|
80
|
-
|
|
81
|
-
context = branchingContext; ///
|
|
82
|
-
|
|
83
|
-
return innerFunction(context);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export function descend(innerFunction, context) {
|
|
87
|
-
const nestedContext = NestedContext.fromNothing(context);
|
|
88
|
-
|
|
89
|
-
context = nestedContext; ///
|
|
90
|
-
|
|
91
|
-
return innerFunction(context);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export function ablate(innerFunction, context) {
|
|
95
|
-
const unreleased = context.isUnreleased();
|
|
96
|
-
|
|
97
|
-
if (unreleased) {
|
|
98
|
-
context = ablateContext(context); ///
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return innerFunction(context);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export function attempt(innerFunction, context) {
|
|
105
|
-
const unreleased = context.isUnreleased();
|
|
106
|
-
|
|
107
|
-
if (unreleased) {
|
|
108
|
-
const mnemicContext = MnemicContext.fromNothing(context);
|
|
109
|
-
|
|
110
|
-
context = mnemicContext; ///
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return innerFunction(context);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export function reconcile(innerFunction, context) {
|
|
117
|
-
const liminalContext = LiminalContext.fromNothing(context);
|
|
118
|
-
|
|
119
|
-
context = liminalContext; ///
|
|
120
|
-
|
|
121
|
-
return innerFunction(context);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function serialise(innerFunction, context) {
|
|
125
|
-
const mnemicContext = context, ///
|
|
126
|
-
mnemicContextJSON = mnemicContextToMnemicContextJSON(mnemicContext),
|
|
127
|
-
contextJSON = mnemicContextJSON; ///
|
|
128
|
-
|
|
129
|
-
context = contextJSON; ///
|
|
130
|
-
|
|
131
|
-
return innerFunction(context);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export function unserialise(innerFunction, json, context) {
|
|
135
|
-
const mnemicContext = mnemicContextFromJSON(json, context);
|
|
136
|
-
|
|
137
|
-
context = mnemicContext; ///
|
|
138
|
-
|
|
139
|
-
return innerFunction(json, context);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export function unserialises(innerFunction, json, context) {
|
|
143
|
-
const mnemicContexts = mnemicContextsFromJSON(json, context),
|
|
144
|
-
contexts = mnemicContexts; ///
|
|
145
|
-
|
|
146
|
-
return innerFunction(json, ...contexts);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export function instantiate(innerFunction, context) {
|
|
150
|
-
const literalContext = LiteralContext.fromNothing(context);
|
|
151
|
-
|
|
152
|
-
context = literalContext; ///
|
|
153
|
-
|
|
154
|
-
return innerFunction(context);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
export function manifest(innerFunction, ...contexts) {
|
|
158
|
-
const phanericContext = PhanericContext.fromContexts(contexts),
|
|
159
|
-
context = phanericContext; ///
|
|
160
|
-
|
|
161
|
-
return innerFunction(context);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export function attempts(innerFunction, ...contexts) {
|
|
165
|
-
contexts = contexts.map((context) => { ///
|
|
166
|
-
const unreleased = context.isUnreleased();
|
|
167
|
-
|
|
168
|
-
if (unreleased) {
|
|
169
|
-
const mnemicContext = MnemicContext.fromNothing(context);
|
|
170
|
-
|
|
171
|
-
context = mnemicContext; ///
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
return context;
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
return innerFunction(...contexts);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export function serialises(innerFunction, ...contexts) {
|
|
181
|
-
const mnemicContexts = contexts, ///
|
|
182
|
-
mnemicContextsJSON = mnemicContextsToMnemicContextsJSON(mnemicContexts),
|
|
183
|
-
contextsJSON = mnemicContextsJSON; ///
|
|
184
|
-
|
|
185
|
-
contexts = contextsJSON; ///
|
|
186
|
-
|
|
187
|
-
return innerFunction(...contexts);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export function ablates(innerFunction, ...contexts) {
|
|
191
|
-
contexts = contexts.map((context) => { ///
|
|
192
|
-
const unreleased = context.isUnreleased();
|
|
193
|
-
|
|
194
|
-
if (unreleased) {
|
|
195
|
-
context = ablateContext(context); ///
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return context;
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
return innerFunction(...contexts);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
function ablateContext(context) {
|
|
205
|
-
let contextGroundedContext = isContextGroundedContext(context);
|
|
206
|
-
|
|
207
|
-
while (!contextGroundedContext) {
|
|
208
|
-
context = context.getContext();
|
|
209
|
-
|
|
210
|
-
contextGroundedContext = isContextGroundedContext(context);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return context;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function isContextGroundedContext(context) {
|
|
217
|
-
const contextTheticContext = (context instanceof TheticContext),
|
|
218
|
-
contextIllativeContext = (context instanceof IllativeContext),
|
|
219
|
-
contextNominalFileContext = (context instanceof NominalFileContext),
|
|
220
|
-
contextGroundedContext = (contextTheticContext || contextIllativeContext || contextNominalFileContext);
|
|
221
|
-
|
|
222
|
-
return contextGroundedContext;
|
|
223
|
-
}
|