occam-verify-cli 1.0.123 → 1.0.125

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/src/dom/axiom.js CHANGED
@@ -5,16 +5,16 @@ import { arrayUtilities } from "necessary";
5
5
  import TopLevelAssertion from "./topLevelAssertion";
6
6
 
7
7
  import { nodeQuery } from "../utilities/query";
8
- import { SATISFYING } from "../constants";
8
+ import { SATISFIABLE } from "../constants";
9
9
  import { domAssigned } from "../dom";
10
10
  import { labelsFromJSON,
11
11
  deductionFromJSON,
12
- satisfyingFromJSON,
12
+ satisfiableFromJSON,
13
13
  labelsToLabelsJSON,
14
14
  suppositionsFromJSON,
15
15
  deductionToDeductionJSON,
16
16
  suppositionsToSuppositionsJSON } from "../utilities/json";
17
- import { satisfyingAssertionFromStatement } from "../utilities/context";
17
+ import { satisfiesAssertionFromStatement } from "../utilities/context";
18
18
  import { proofFromNode, labelsFromNode, deductionFromNode, suppositionsFromNode, stringFromLabelsAndDeduction } from "./topLevelAssertion";
19
19
 
20
20
  const { match, backwardsSome } = arrayUtilities;
@@ -22,14 +22,14 @@ const { match, backwardsSome } = arrayUtilities;
22
22
  const firstPrimaryKeywordTerminalNodeQuery = nodeQuery("/axiom/@primary-keyword[0]");
23
23
 
24
24
  export default domAssigned(class Axiom extends TopLevelAssertion {
25
- constructor(fileContext, string, labels, suppositions, deduction, proof, satisfying) {
25
+ constructor(fileContext, string, labels, suppositions, deduction, proof, satisfiable) {
26
26
  super(fileContext, string, labels, suppositions, deduction, proof);
27
27
 
28
- this.satisfying = satisfying;
28
+ this.satisfiable = satisfiable;
29
29
  }
30
30
 
31
- isSatisfying() {
32
- return this.satisfying;
31
+ isSatisfiable() {
32
+ return this.satisfiable;
33
33
  }
34
34
 
35
35
  verify() {
@@ -163,17 +163,17 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
163
163
  statementAndStepsOrSubproofsUnified = super.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, substitutions, context);
164
164
 
165
165
  if (statementAndStepsOrSubproofsUnified) {
166
- if (this.satisfying) {
166
+ if (this.satisfiable) {
167
167
  const substitutionsMatch = backwardsSome(stepsOrSubproofs, (stepOrSubproof) => {
168
168
  const stepSubstep = stepOrSubproof.isStep();
169
169
 
170
170
  if (stepSubstep) {
171
171
  const step = stepOrSubproof, ///
172
172
  statement = step.getStatement(),
173
- satisfyingAssertion = satisfyingAssertionFromStatement(statement, context);
173
+ satisfiesAssertion = satisfiesAssertionFromStatement(statement, context);
174
174
 
175
- if (satisfyingAssertion !== null) {
176
- const substitutionsMatch = satisfyingAssertion.matchSubstitutions(substitutions, context);
175
+ if (satisfiesAssertion !== null) {
176
+ const substitutionsMatch = satisfiesAssertion.matchSubstitutions(substitutions, context);
177
177
 
178
178
  if (substitutionsMatch) {
179
179
  return true;
@@ -202,12 +202,12 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
202
202
  deduction = deductionJSON; ///
203
203
  suppositions = suppositionsJSON; ///
204
204
 
205
- const satisfying = this.satisfying,
205
+ const satisfiable = this.satisfiable,
206
206
  json = {
207
207
  labels,
208
208
  deduction,
209
209
  suppositions,
210
- satisfying
210
+ satisfiable
211
211
  };
212
212
 
213
213
  return json;
@@ -220,9 +220,9 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
220
220
  suppositions = suppositionsFromJSON(json, fileContext),
221
221
  deduction = deductionFromJSON(json, fileContext),
222
222
  proof = null,
223
- satisfying = satisfyingFromJSON(json, fileContext),
223
+ satisfiable = satisfiableFromJSON(json, fileContext),
224
224
  string = stringFromLabelsAndDeduction(labels, deduction),
225
- topLevelAssertion = new Axiom(fileContext, string, labels, suppositions, deduction, proof, satisfying);
225
+ topLevelAssertion = new Axiom(fileContext, string, labels, suppositions, deduction, proof, satisfiable);
226
226
 
227
227
  return topLevelAssertion;
228
228
  }
@@ -233,20 +233,20 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
233
233
  suppositions = suppositionsFromNode(node, fileContext),
234
234
  deduction = deductionFromNode(node, fileContext),
235
235
  proof = proofFromNode(node, fileContext),
236
- satisfying = satisfyingFromNode(node, fileContext),
236
+ satisfiable = satisfiableFromNode(node, fileContext),
237
237
  string = stringFromLabelsAndDeduction(labels, deduction),
238
- topLevelAssertion = new Axiom(fileContext, string, labels, suppositions, deduction, proof, satisfying);
238
+ topLevelAssertion = new Axiom(fileContext, string, labels, suppositions, deduction, proof, satisfiable);
239
239
 
240
240
  return topLevelAssertion;
241
241
  }
242
242
  });
243
243
 
244
- function satisfyingFromNode(node, fileContext) {
244
+ function satisfiableFromNode(node, fileContext) {
245
245
  const firstPrimaryKeywordTerminalNode = firstPrimaryKeywordTerminalNodeQuery(node),
246
246
  content = firstPrimaryKeywordTerminalNode.getContent(),
247
- contentSatisfying = (content === SATISFYING),
248
- satisfying = contentSatisfying; ///
247
+ contentSatisfiable = (content === SATISFIABLE),
248
+ satisfiable = contentSatisfiable; ///
249
249
 
250
- return satisfying;
250
+ return satisfiable;
251
251
  }
252
252
 
@@ -13,7 +13,7 @@ import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utiliti
13
13
  const stepReferenceNodeQuery = nodeQuery("/step/reference"),
14
14
  procedureCallReferenceNodeQuery = nodeQuery("/procedureCall/reference"),
15
15
  declarationMetavariableNodeQuery = nodeQuery("/declaration/metavariable"),
16
- satisfyingAssertionMetavariableNodeQuery = nodeQuery("/satisfyingAssertion/metavariable");
16
+ satisfiesAssertionMetavariableNodeQuery = nodeQuery("/satisfiesAssertion/metavariable");
17
17
 
18
18
  export default domAssigned(class Reference {
19
19
  constructor(metavariable) {
@@ -228,9 +228,9 @@ export default domAssigned(class Reference {
228
228
  return reference;
229
229
  }
230
230
 
231
- static fromSatisfyingAssertionNode(satisfyingAssertionNode, fileContext) {
232
- const satisfyingAssertionMetavariableNode = satisfyingAssertionMetavariableNodeQuery(satisfyingAssertionNode),
233
- metavariableNode = satisfyingAssertionMetavariableNode, ///
231
+ static fromSatisfiesAssertionNode(satisfiesAssertionNode, fileContext) {
232
+ const satisfiesAssertionMetavariableNode = satisfiesAssertionMetavariableNodeQuery(satisfiesAssertionNode),
233
+ metavariableNode = satisfiesAssertionMetavariableNode, ///
234
234
  reference = referenceFromMetavariableNode(metavariableNode, fileContext);
235
235
 
236
236
  return reference;
package/src/dom/rule.js CHANGED
@@ -19,7 +19,7 @@ import { labelsFromJSON,
19
19
  const { reverse, extract, backwardsEvery } = arrayUtilities;
20
20
 
21
21
  const proofNodeQuery = nodeQuery("/rule/proof"),
22
- labelNodesQuery = nodesQuery("/rule/labels/label"),
22
+ labelNodesQuery = nodesQuery("/rule/parenthesisedLabels/labels/label"),
23
23
  premiseNodesQuery = nodesQuery("/rule/premise"),
24
24
  conclusionNodeQuery = nodeQuery("/rule/conclusion");
25
25
 
@@ -17,7 +17,7 @@ import { labelsFromJSON,
17
17
  const { reverse, extract, backwardsEvery } = arrayUtilities;
18
18
 
19
19
  const proofNodeQuery = nodeQuery("/*/proof"),
20
- labelNodesQuery = nodesQuery("/*/labels/label"),
20
+ labelNodesQuery = nodesQuery("/*/parenthesisedLabels/labels/label"),
21
21
  deductionNodeQuery = nodeQuery("/*/deduction"),
22
22
  suppositionNodesQuery = nodesQuery("/*/supposition");
23
23
 
@@ -20,7 +20,7 @@ import { labelsFromJSON,
20
20
 
21
21
  const { first } = arrayUtilities;
22
22
 
23
- const labelNodeQuery = nodeQuery("/metatheorem/label");
23
+ const labelNodeQuery = nodeQuery("/*/parenthesisedLabel/label");
24
24
 
25
25
  export default class TopLevelMetaAssertion extends TopLevelAssertion {
26
26
  constructor(fileContext, string, labels, suppositions, deduction, proof, substitutions) {
package/src/index.js CHANGED
@@ -41,7 +41,7 @@ import PropertyRelation from "./dom/relation/property";
41
41
  import SubproofAssertion from "./dom/assertion/subproof";
42
42
  import PropertyAssertion from "./dom/assertion/property";
43
43
  import ContainedAssertion from "./dom/assertion/contained";
44
- import SatisfyingAssertion from "./dom/assertion/satisfying";
44
+ import SatisfiesAssertion from "./dom/assertion/satisfies";
45
45
  import VariableDeclaration from "./dom/declaration/variable";
46
46
  import BracketedCombinator from "./dom/combinator/bracketed";
47
47
  import BracketedConstructor from "./dom/constructor/bracketed";
@@ -10,7 +10,7 @@ import { equalityFromStatement,
10
10
  propertyAssertionFromStatement,
11
11
  subproofAssertionFromStatement,
12
12
  containedAssertionFromStatement,
13
- satisfyingAssertionFromStatement } from "../../utilities/context";
13
+ satisfiesAssertionFromStatement } from "../../utilities/context";
14
14
 
15
15
  function unifyWithBracketedCombinator(statement, assignments, stated, context) {
16
16
  stated = true; ///
@@ -217,26 +217,26 @@ function verifyAsContainedAssertion(statement, assignments, stated, context) {
217
217
  return verifiedAsContainedAssertion;
218
218
  }
219
219
 
220
- function verifyAsSatisfyingAssertion(statement, assignments, stated, context) {
221
- let verifiedAsSatisfyingAssertion = false;
220
+ function verifyAsSatisfiesAssertion(statement, assignments, stated, context) {
221
+ let verifiedAsSatisfiesAssertion = false;
222
222
 
223
- const satisfyingAssertion = satisfyingAssertionFromStatement(statement, context);
223
+ const satisfiesAssertion = satisfiesAssertionFromStatement(statement, context);
224
224
 
225
- if (satisfyingAssertion !== null) {
225
+ if (satisfiesAssertion !== null) {
226
226
  const statementString = statement.getString();
227
227
 
228
- context.trace(`Verifying the '${statementString}' statement as a satisfying assertion...`);
228
+ context.trace(`Verifying the '${statementString}' statement as a satisfies assertion...`);
229
229
 
230
- const satisfyingAssertionVerified = satisfyingAssertion.verify(assignments, stated, context);
230
+ const satisfiesAssertionVerified = satisfiesAssertion.verify(assignments, stated, context);
231
231
 
232
- verifiedAsSatisfyingAssertion = satisfyingAssertionVerified; ///
232
+ verifiedAsSatisfiesAssertion = satisfiesAssertionVerified; ///
233
233
 
234
- if (verifiedAsSatisfyingAssertion) {
235
- context.debug(`...verified the '${statementString}' statement as a satisfying assertion.`);
234
+ if (verifiedAsSatisfiesAssertion) {
235
+ context.debug(`...verified the '${statementString}' statement as a satisfies assertion.`);
236
236
  }
237
237
  }
238
238
 
239
- return verifiedAsSatisfyingAssertion;
239
+ return verifiedAsSatisfiesAssertion;
240
240
  }
241
241
 
242
242
  const verifyMixins = [
@@ -250,7 +250,7 @@ const verifyMixins = [
250
250
  verifyAsPropertyAssertion,
251
251
  verifyAsSubproofAssertion,
252
252
  verifyAsContainedAssertion,
253
- verifyAsSatisfyingAssertion
253
+ verifyAsSatisfiesAssertion
254
254
  ];
255
255
 
256
256
  export default verifyMixins;
@@ -7,7 +7,7 @@ import { equalityFromStatement,
7
7
  judgementFromStatement,
8
8
  typeAssertionFromStatement,
9
9
  propertyAssertionFromStatement,
10
- satisfyingAssertionFromStatement } from "../../utilities/context";
10
+ satisfiesAssertionFromStatement } from "../../utilities/context";
11
11
 
12
12
  function unifyAWithRule(statement, reference, substitutions, context) {
13
13
  let unifiedWithRule = false;
@@ -65,40 +65,40 @@ function unifyAWithReference(statement, reference, substitutions, context) {
65
65
  return unifiedWithReference;
66
66
  }
67
67
 
68
- function unifyAsSatisfyingAssertion(statement, reference, substitutions, context) {
69
- let unifiedAsSatisfyingAssertion = false;
68
+ function unifyAsSatisfiesAssertion(statement, reference, substitutions, context) {
69
+ let unifiedAsSatisfiesAssertion = false;
70
70
 
71
71
  if (reference !== null) {
72
- const satisfyingAssertion = satisfyingAssertionFromStatement(statement, context);
72
+ const satisfiesAssertion = satisfiesAssertionFromStatement(statement, context);
73
73
 
74
- if (satisfyingAssertion !== null) {
74
+ if (satisfiesAssertion !== null) {
75
75
  const statementString = statement.getString();
76
76
 
77
- context.trace(`Unifying the '${statementString}' statement as a satisfying assertion...`);
77
+ context.trace(`Unifying the '${statementString}' statement as a satisfies assertion...`);
78
78
 
79
79
  const axiomLemmaTheoremConjecture = context.findAxiomLemmaTheoremConjectureByReference(reference);
80
80
 
81
81
  if (axiomLemmaTheoremConjecture !== null) {
82
- reference = satisfyingAssertion.getReference();
82
+ reference = satisfiesAssertion.getReference();
83
83
 
84
84
  const axiom = context.findAxiomByReference(reference),
85
85
  substitutions = Substitutions.fromNothing(),
86
86
  axiomLemmaTheoremConjectureUnified = axiom.unifyAxiomLemmaTheoremConjecture(axiomLemmaTheoremConjecture, substitutions, context);
87
87
 
88
88
  if (axiomLemmaTheoremConjectureUnified) {
89
- const substitutionsMatch = satisfyingAssertion.matchSubstitutions(substitutions, context);
89
+ const substitutionsMatch = satisfiesAssertion.matchSubstitutions(substitutions, context);
90
90
 
91
- unifiedAsSatisfyingAssertion = substitutionsMatch; ///
91
+ unifiedAsSatisfiesAssertion = substitutionsMatch; ///
92
92
  }
93
93
  }
94
94
 
95
- if (unifiedAsSatisfyingAssertion) {
96
- context.debug(`...unified the '${statementString}' statement as a satisfying assertion.`);
95
+ if (unifiedAsSatisfiesAssertion) {
96
+ context.debug(`...unified the '${statementString}' statement as a satisfies assertion.`);
97
97
  }
98
98
  }
99
99
  }
100
100
 
101
- return unifiedAsSatisfyingAssertion;
101
+ return unifiedAsSatisfiesAssertion;
102
102
  }
103
103
 
104
104
  function unifyAWithAxiomLemmaTheoremOrConjecture(statement, reference, substitutions, context) {
@@ -253,7 +253,7 @@ function unifyWithStepsOrSubproofs(statement, reference, substitutions, context)
253
253
  const unifyMixins = [
254
254
  unifyAWithRule,
255
255
  unifyAWithReference,
256
- unifyAsSatisfyingAssertion,
256
+ unifyAsSatisfiesAssertion,
257
257
  unifyAWithAxiomLemmaTheoremOrConjecture,
258
258
  unifyAsEquality,
259
259
  unifyAsJudgement,
@@ -93,14 +93,14 @@ export function containedAssertionFromStatement(statement, context) {
93
93
  return containedAssertion;
94
94
  }
95
95
 
96
- export function satisfyingAssertionFromStatement(statement, context) {
96
+ export function satisfiesAssertionFromStatement(statement, context) {
97
97
  context = contextFromStatement(statement, context); ///
98
98
 
99
- const { SatisfyingAssertion } = dom,
99
+ const { SatisfiesAssertion } = dom,
100
100
  statementNode = statement.getNode(),
101
- satisfyingAssertion = SatisfyingAssertion.fromStatementNode(statementNode, context);
101
+ satisfiesAssertion = SatisfiesAssertion.fromStatementNode(statementNode, context);
102
102
 
103
- return satisfyingAssertion;
103
+ return satisfiesAssertion;
104
104
  }
105
105
 
106
106
  function contextFromFrame(frame, context) {
@@ -84,10 +84,10 @@ export function deductionFromJSON(json, fileContext) {
84
84
  return deduction;
85
85
  }
86
86
 
87
- export function satisfyingFromJSON(json, fileContext) {
88
- const { satisfying } = json;
87
+ export function satisfiableFromJSON(json, fileContext) {
88
+ const { satisfiable } = json;
89
89
 
90
- return satisfying;
90
+ return satisfiable;
91
91
  }
92
92
 
93
93
  export function conclusionFromJSON(json, fileContext) {
@@ -1,229 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
12
- var _query = require("../../utilities/query");
13
- function _class_call_check(instance, Constructor) {
14
- if (!(instance instanceof Constructor)) {
15
- throw new TypeError("Cannot call a class as a function");
16
- }
17
- }
18
- function _defineProperties(target, props) {
19
- for(var i = 0; i < props.length; i++){
20
- var descriptor = props[i];
21
- descriptor.enumerable = descriptor.enumerable || false;
22
- descriptor.configurable = true;
23
- if ("value" in descriptor) descriptor.writable = true;
24
- Object.defineProperty(target, descriptor.key, descriptor);
25
- }
26
- }
27
- function _create_class(Constructor, protoProps, staticProps) {
28
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
- if (staticProps) _defineProperties(Constructor, staticProps);
30
- return Constructor;
31
- }
32
- function _define_property(obj, key, value) {
33
- if (key in obj) {
34
- Object.defineProperty(obj, key, {
35
- value: value,
36
- enumerable: true,
37
- configurable: true,
38
- writable: true
39
- });
40
- } else {
41
- obj[key] = value;
42
- }
43
- return obj;
44
- }
45
- function _getRequireWildcardCache(nodeInterop) {
46
- if (typeof WeakMap !== "function") return null;
47
- var cacheBabelInterop = new WeakMap();
48
- var cacheNodeInterop = new WeakMap();
49
- return (_getRequireWildcardCache = function(nodeInterop) {
50
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
51
- })(nodeInterop);
52
- }
53
- function _interop_require_wildcard(obj, nodeInterop) {
54
- if (!nodeInterop && obj && obj.__esModule) {
55
- return obj;
56
- }
57
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
58
- return {
59
- default: obj
60
- };
61
- }
62
- var cache = _getRequireWildcardCache(nodeInterop);
63
- if (cache && cache.has(obj)) {
64
- return cache.get(obj);
65
- }
66
- var newObj = {
67
- __proto__: null
68
- };
69
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
70
- for(var key in obj){
71
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
72
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
73
- if (desc && (desc.get || desc.set)) {
74
- Object.defineProperty(newObj, key, desc);
75
- } else {
76
- newObj[key] = obj[key];
77
- }
78
- }
79
- }
80
- newObj.default = obj;
81
- if (cache) {
82
- cache.set(obj, newObj);
83
- }
84
- return newObj;
85
- }
86
- var _SatisfyingAssertion;
87
- var termNodesQuery = (0, _query.nodesQuery)("/satisfyingAssertion/term"), satisfyingAssertionNodeQuery = (0, _query.nodeQuery)("/statement/satisfyingAssertion");
88
- var _default = (0, _dom.domAssigned)((_SatisfyingAssertion = /*#__PURE__*/ function() {
89
- function SatisfyingAssertion(string, node, tokens, terms, reference) {
90
- _class_call_check(this, SatisfyingAssertion);
91
- this.string = string;
92
- this.node = node;
93
- this.tokens = tokens;
94
- this.terms = terms;
95
- this.reference = reference;
96
- }
97
- _create_class(SatisfyingAssertion, [
98
- {
99
- key: "getString",
100
- value: function getString() {
101
- return this.string;
102
- }
103
- },
104
- {
105
- key: "getNode",
106
- value: function getNode() {
107
- return this.node;
108
- }
109
- },
110
- {
111
- key: "getTokens",
112
- value: function getTokens() {
113
- return this.tokens;
114
- }
115
- },
116
- {
117
- key: "getTerms",
118
- value: function getTerms() {
119
- return this.terms;
120
- }
121
- },
122
- {
123
- key: "getReference",
124
- value: function getReference() {
125
- return this.reference;
126
- }
127
- },
128
- {
129
- key: "matchSubstitutions",
130
- value: function matchSubstitutions(substitutions, context) {
131
- var substitutionsMatch;
132
- var termsString = termsStringFromTerms(this.terms), substitutionsString = substitutions.asString(), satisfyingAssertionString = this.string; ///
133
- context.trace("Matching the '".concat(substitutionsString, "' substitutions against the '").concat(satisfyingAssertionString, "' satisfying assertion's ").concat(termsString, " terms..."));
134
- var termsEquate = substitutions.matchTerms(this.terms);
135
- substitutionsMatch = termsEquate; ///
136
- if (substitutionsMatch) {
137
- context.debug("...matched the '".concat(substitutionsString, "' substitutions against the '").concat(satisfyingAssertionString, "' satisfying assertion's ").concat(termsString, " terms."));
138
- }
139
- return substitutionsMatch;
140
- }
141
- },
142
- {
143
- key: "verify",
144
- value: function verify(assignments, stated, context) {
145
- var verified = false;
146
- var satisfyingAssertionString = this.string; ///
147
- context.trace("Verifying the '".concat(satisfyingAssertionString, "' satisfying assertion..."));
148
- var termsVerified = this.verifyTerms(assignments, stated, context);
149
- if (termsVerified) {
150
- var referenceVerified = this.verifyReference(assignments, stated, context);
151
- verified = referenceVerified; ///
152
- }
153
- if (verified) {
154
- context.debug("...verified the '".concat(satisfyingAssertionString, "' satisfying assertion."));
155
- }
156
- return verified;
157
- }
158
- },
159
- {
160
- key: "verifyTerms",
161
- value: function verifyTerms(assignments, stated, context) {
162
- var termsVerified;
163
- var termsString = termsStringFromTerms(this.terms), satisfyingAssertionString = this.string; ///
164
- context.trace("Verifying the '".concat(satisfyingAssertionString, "' satisfying assertion's ").concat(termsString, " terms..."));
165
- termsVerified = this.terms.every(function(term) {
166
- var termVerified = term.verify(context, function() {
167
- var verifiedAhead = true;
168
- return verifiedAhead;
169
- });
170
- return termVerified;
171
- });
172
- if (termsVerified) {
173
- context.debug("...verified the '".concat(satisfyingAssertionString, "' satisfying assertion's ").concat(termsString, " terms."));
174
- }
175
- return termsVerified;
176
- }
177
- },
178
- {
179
- key: "verifyReference",
180
- value: function verifyReference(assignments, stated, context) {
181
- var referenceVerified = false;
182
- var referenceString = this.reference.getString(), satisfyingAssertionString = this.string; ///
183
- context.trace("Verifying the '".concat(satisfyingAssertionString, "' satisfying assertion's '").concat(referenceString, "' reference..."));
184
- var axiom = context.findAxiomByReference(this.reference, context);
185
- if (axiom !== null) {
186
- var axiomSatisfying = axiom.isSatisfying();
187
- if (axiomSatisfying) {
188
- referenceVerified = true;
189
- }
190
- }
191
- if (referenceVerified) {
192
- context.debug("...verified the '".concat(satisfyingAssertionString, "' satisfying assertion's '").concat(referenceString, "' reference."));
193
- }
194
- return referenceVerified;
195
- }
196
- }
197
- ], [
198
- {
199
- key: "fromStatementNode",
200
- value: function fromStatementNode(statementNode, context) {
201
- var satisfyingAssertion = null;
202
- var satisfyingAssertionNode = satisfyingAssertionNodeQuery(statementNode);
203
- if (satisfyingAssertionNode !== null) {
204
- var Reference = _dom.default.Reference, node = satisfyingAssertionNode, string = context.nodeAsString(node), tokens = context.nodeAsTokens(node), terms = termsFromSatisfyingAssertionNode(satisfyingAssertionNode, context), reference = Reference.fromSatisfyingAssertionNode(satisfyingAssertionNode, context);
205
- satisfyingAssertion = new SatisfyingAssertion(string, node, tokens, terms, reference);
206
- }
207
- return satisfyingAssertion;
208
- }
209
- }
210
- ]);
211
- return SatisfyingAssertion;
212
- }(), _define_property(_SatisfyingAssertion, "name", "SatisfyingAssertion"), _SatisfyingAssertion));
213
- function termsStringFromTerms(terms) {
214
- var termsString = terms.reduce(function(termsString, term) {
215
- var termString = term.getString();
216
- termsString = termsString === null ? "'".concat(termString, "'") : "".concat(termsString, ", '").concat(termString, "'");
217
- return termsString;
218
- }, null);
219
- return termsString;
220
- }
221
- function termsFromSatisfyingAssertionNode(satisfyingAssertionNode, context) {
222
- var termNodes = termNodesQuery(satisfyingAssertionNode), terms = termNodes.map(function(termNode) {
223
- var Term = _dom.default.Term, term = Term.fromTermNode(termNode, context);
224
- return term;
225
- });
226
- return terms;
227
- }
228
-
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vYXNzZXJ0aW9uL3NhdGlzZnlpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3NhdGlzZnlpbmdBc3NlcnRpb24vdGVybVwiKSxcbiAgICAgIHNhdGlzZnlpbmdBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L3NhdGlzZnlpbmdBc3NlcnRpb25cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFNhdGlzZnlpbmdBc3NlcnRpb24ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHRva2VucywgdGVybXMsIHJlZmVyZW5jZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gICAgdGhpcy50ZXJtcyA9IHRlcm1zO1xuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXRUZXJtcygpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtcztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBtYXRjaFN1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgY29udGV4dCkge1xuICAgIGxldCBzdWJzdGl0dXRpb25zTWF0Y2g7XG5cbiAgICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zU3RyaW5nRnJvbVRlcm1zKHRoaXMudGVybXMpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnNTdHJpbmcgPSBzdWJzdGl0dXRpb25zLmFzU3RyaW5nKCksXG4gICAgICAgICAgc2F0aXNmeWluZ0Fzc2VydGlvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYE1hdGNoaW5nIHRoZSAnJHtzdWJzdGl0dXRpb25zU3RyaW5nfScgc3Vic3RpdHV0aW9ucyBhZ2FpbnN0IHRoZSAnJHtzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmeWluZyBhc3NlcnRpb24ncyAke3Rlcm1zU3RyaW5nfSB0ZXJtcy4uLmApO1xuXG4gICAgY29uc3QgdGVybXNFcXVhdGUgPSBzdWJzdGl0dXRpb25zLm1hdGNoVGVybXModGhpcy50ZXJtcyk7XG5cbiAgICBzdWJzdGl0dXRpb25zTWF0Y2ggPSB0ZXJtc0VxdWF0ZTsgIC8vL1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbnNNYXRjaCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4ubWF0Y2hlZCB0aGUgJyR7c3Vic3RpdHV0aW9uc1N0cmluZ30nIHN1YnN0aXR1dGlvbnMgYWdhaW5zdCB0aGUgJyR7c2F0aXNmeWluZ0Fzc2VydGlvblN0cmluZ30nIHNhdGlzZnlpbmcgYXNzZXJ0aW9uJ3MgJHt0ZXJtc1N0cmluZ30gdGVybXMuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnNNYXRjaDtcbiAgfVxuXG4gIHZlcmlmeShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmeWluZyBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IHRlcm1zVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVRlcm1zKGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IHJlZmVyZW5jZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlSZWZlcmVuY2UoYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkID0gcmVmZXJlbmNlVmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3NhdGlzZnlpbmdBc3NlcnRpb25TdHJpbmd9JyBzYXRpc2Z5aW5nIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUZXJtcyhhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHRlcm1zVmVyaWZpZWQ7XG5cbiAgICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zU3RyaW5nRnJvbVRlcm1zKHRoaXMudGVybXMpLFxuICAgICAgICAgIHNhdGlzZnlpbmdBc3NlcnRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3NhdGlzZnlpbmdBc3NlcnRpb25TdHJpbmd9JyBzYXRpc2Z5aW5nIGFzc2VydGlvbidzICR7dGVybXNTdHJpbmd9IHRlcm1zLi4uYCk7XG5cbiAgICB0ZXJtc1ZlcmlmaWVkID0gdGhpcy50ZXJtcy5ldmVyeSgodGVybSkgPT4ge1xuICAgICAgY29uc3QgdGVybVZlcmlmaWVkID0gdGVybS52ZXJpZnkoY29udGV4dCwgKCkgPT4ge1xuICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGVybVZlcmlmaWVkO1xuICAgIH0pO1xuXG4gICAgaWYgKHRlcm1zVmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmeWluZyBhc3NlcnRpb24ncyAke3Rlcm1zU3RyaW5nfSB0ZXJtcy5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybXNWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVJlZmVyZW5jZShhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHJlZmVyZW5jZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCByZWZlcmVuY2VTdHJpbmcgPSB0aGlzLnJlZmVyZW5jZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmeWluZyBhc3NlcnRpb24ncyAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2UuLi5gKTtcblxuICAgIGNvbnN0IGF4aW9tID0gY29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZSh0aGlzLnJlZmVyZW5jZSwgY29udGV4dCk7XG5cbiAgICBpZiAoYXhpb20gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGF4aW9tU2F0aXNmeWluZyA9IGF4aW9tLmlzU2F0aXNmeWluZygpO1xuXG4gICAgICBpZiAoYXhpb21TYXRpc2Z5aW5nKSB7XG4gICAgICAgIHJlZmVyZW5jZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocmVmZXJlbmNlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzYXRpc2Z5aW5nQXNzZXJ0aW9uU3RyaW5nfScgc2F0aXNmeWluZyBhc3NlcnRpb24ncyAnJHtyZWZlcmVuY2VTdHJpbmd9JyByZWZlcmVuY2UuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNhdGlzZnlpbmdBc3NlcnRpb25cIjtcblxuICBzdGF0aWMgZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGxldCBzYXRpc2Z5aW5nQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IHNhdGlzZnlpbmdBc3NlcnRpb25Ob2RlID0gc2F0aXNmeWluZ0Fzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChzYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgeyBSZWZlcmVuY2UgfSA9IGRvbSxcbiAgICAgICAgICAgIG5vZGUgPSBzYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICB0b2tlbnMgPSBjb250ZXh0Lm5vZGVBc1Rva2Vucyhub2RlKSxcbiAgICAgICAgICAgIHRlcm1zID0gdGVybXNGcm9tU2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUoc2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgcmVmZXJlbmNlID0gUmVmZXJlbmNlLmZyb21TYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZShzYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIHNhdGlzZnlpbmdBc3NlcnRpb24gPSBuZXcgU2F0aXNmeWluZ0Fzc2VydGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgdGVybXMsIHJlZmVyZW5jZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNhdGlzZnlpbmdBc3NlcnRpb247XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0ZXJtc1N0cmluZ0Zyb21UZXJtcyh0ZXJtcykge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zLnJlZHVjZSgodGVybXNTdHJpbmcsIHRlcm0pID0+IHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgIHRlcm1zU3RyaW5nID0gKHRlcm1zU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgYCcke3Rlcm1TdHJpbmd9J2AgOiAgLy8vXG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICcke3Rlcm1TdHJpbmd9J2A7XG5cbiAgICByZXR1cm4gdGVybXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZnVuY3Rpb24gdGVybXNGcm9tU2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUoc2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdGVybU5vZGVzID0gdGVybU5vZGVzUXVlcnkoc2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUpLFxuICAgICAgICB0ZXJtcyA9IHRlcm1Ob2Rlcy5tYXAoKHRlcm1Ob2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBUZXJtIH0gPSBkb20sXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiB0ZXJtO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gdGVybXM7XG59XG4iXSwibmFtZXMiOlsidGVybU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic2F0aXNmeWluZ0Fzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiU2F0aXNmeWluZ0Fzc2VydGlvbiIsInN0cmluZyIsIm5vZGUiLCJ0b2tlbnMiLCJ0ZXJtcyIsInJlZmVyZW5jZSIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRUb2tlbnMiLCJnZXRUZXJtcyIsImdldFJlZmVyZW5jZSIsIm1hdGNoU3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnMiLCJjb250ZXh0Iiwic3Vic3RpdHV0aW9uc01hdGNoIiwidGVybXNTdHJpbmciLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtcyIsInN1YnN0aXR1dGlvbnNTdHJpbmciLCJhc1N0cmluZyIsInNhdGlzZnlpbmdBc3NlcnRpb25TdHJpbmciLCJ0cmFjZSIsInRlcm1zRXF1YXRlIiwibWF0Y2hUZXJtcyIsImRlYnVnIiwidmVyaWZ5IiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJ2ZXJpZmllZCIsInRlcm1zVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtcyIsInJlZmVyZW5jZVZlcmlmaWVkIiwidmVyaWZ5UmVmZXJlbmNlIiwiZXZlcnkiLCJ0ZXJtIiwidGVybVZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsInJlZmVyZW5jZVN0cmluZyIsImF4aW9tIiwiZmluZEF4aW9tQnlSZWZlcmVuY2UiLCJheGlvbVNhdGlzZnlpbmciLCJpc1NhdGlzZnlpbmciLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJzYXRpc2Z5aW5nQXNzZXJ0aW9uIiwic2F0aXNmeWluZ0Fzc2VydGlvbk5vZGUiLCJSZWZlcmVuY2UiLCJkb20iLCJub2RlQXNTdHJpbmciLCJub2RlQXNUb2tlbnMiLCJ0ZXJtc0Zyb21TYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZSIsImZyb21TYXRpc2Z5aW5nQXNzZXJ0aW9uTm9kZSIsIm5hbWUiLCJyZWR1Y2UiLCJ0ZXJtU3RyaW5nIiwidGVybU5vZGVzIiwibWFwIiwidGVybU5vZGUiLCJUZXJtIiwiZnJvbVRlcm1Ob2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OzsyREFSZ0I7cUJBR3NCOzs7Ozs7Ozs7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