occam-verify-cli 1.0.220 → 1.0.223
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/local.js +5 -43
- package/lib/dom/assertion/property.js +4 -2
- package/lib/dom/assertion/type.js +4 -2
- package/lib/dom/axiom.js +9 -9
- package/lib/dom/equality.js +21 -6
- package/lib/dom/judgement.js +4 -2
- package/lib/dom/rule.js +13 -5
- package/lib/dom/statement.js +7 -7
- package/lib/dom/step.js +18 -21
- package/lib/dom/subproof.js +12 -15
- package/lib/dom/substitution/term.js +2 -16
- package/lib/dom/substitution.js +1 -8
- package/lib/dom/topLevelAssertion.js +18 -31
- package/lib/dom/topLevelMetaAssertion.js +13 -5
- package/lib/dom/variable.js +3 -3
- package/lib/equivalence.js +54 -33
- package/lib/equivalences.js +57 -101
- package/lib/mixins/step/unify.js +42 -24
- package/lib/unifier/equantional.js +170 -0
- package/lib/utilities/brackets.js +2 -2
- package/lib/utilities/subproof.js +2 -2
- package/lib/utilities/unification.js +1 -11
- package/package.json +1 -1
- package/src/context/local.js +5 -48
- package/src/dom/assertion/property.js +3 -1
- package/src/dom/assertion/type.js +3 -1
- package/src/dom/axiom.js +12 -10
- package/src/dom/equality.js +26 -9
- package/src/dom/judgement.js +3 -1
- package/src/dom/rule.js +20 -5
- package/src/dom/statement.js +5 -5
- package/src/dom/step.js +28 -34
- package/src/dom/subproof.js +15 -25
- package/src/dom/substitution/term.js +1 -19
- package/src/dom/substitution.js +0 -6
- package/src/dom/topLevelAssertion.js +20 -41
- package/src/dom/topLevelMetaAssertion.js +20 -5
- package/src/dom/variable.js +3 -2
- package/src/equivalence.js +69 -46
- package/src/equivalences.js +53 -115
- package/src/mixins/step/unify.js +54 -33
- package/src/unifier/equantional.js +90 -0
- package/src/utilities/brackets.js +1 -1
- package/src/utilities/subproof.js +1 -1
- package/src/utilities/unification.js +0 -14
- package/lib/unifier/equality.js +0 -155
- package/src/unifier/equality.js +0 -70
|
@@ -0,0 +1,170 @@
|
|
|
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 _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
|
|
12
|
+
var _query = require("../utilities/query");
|
|
13
|
+
function _assert_this_initialized(self) {
|
|
14
|
+
if (self === void 0) {
|
|
15
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
16
|
+
}
|
|
17
|
+
return self;
|
|
18
|
+
}
|
|
19
|
+
function _call_super(_this, derived, args) {
|
|
20
|
+
derived = _get_prototype_of(derived);
|
|
21
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
22
|
+
}
|
|
23
|
+
function _class_call_check(instance, Constructor) {
|
|
24
|
+
if (!(instance instanceof Constructor)) {
|
|
25
|
+
throw new TypeError("Cannot call a class as a function");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function _defineProperties(target, props) {
|
|
29
|
+
for(var i = 0; i < props.length; i++){
|
|
30
|
+
var descriptor = props[i];
|
|
31
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
32
|
+
descriptor.configurable = true;
|
|
33
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
34
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
38
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
39
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
40
|
+
return Constructor;
|
|
41
|
+
}
|
|
42
|
+
function _define_property(obj, key, value) {
|
|
43
|
+
if (key in obj) {
|
|
44
|
+
Object.defineProperty(obj, key, {
|
|
45
|
+
value: value,
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
obj[key] = value;
|
|
52
|
+
}
|
|
53
|
+
return obj;
|
|
54
|
+
}
|
|
55
|
+
function _get_prototype_of(o) {
|
|
56
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
57
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
58
|
+
};
|
|
59
|
+
return _get_prototype_of(o);
|
|
60
|
+
}
|
|
61
|
+
function _inherits(subClass, superClass) {
|
|
62
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
63
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
64
|
+
}
|
|
65
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
66
|
+
constructor: {
|
|
67
|
+
value: subClass,
|
|
68
|
+
writable: true,
|
|
69
|
+
configurable: true
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
73
|
+
}
|
|
74
|
+
function _interop_require_default(obj) {
|
|
75
|
+
return obj && obj.__esModule ? obj : {
|
|
76
|
+
default: obj
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function _possible_constructor_return(self, call) {
|
|
80
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
81
|
+
return call;
|
|
82
|
+
}
|
|
83
|
+
return _assert_this_initialized(self);
|
|
84
|
+
}
|
|
85
|
+
function _set_prototype_of(o, p) {
|
|
86
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
87
|
+
o.__proto__ = p;
|
|
88
|
+
return o;
|
|
89
|
+
};
|
|
90
|
+
return _set_prototype_of(o, p);
|
|
91
|
+
}
|
|
92
|
+
function _type_of(obj) {
|
|
93
|
+
"@swc/helpers - typeof";
|
|
94
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
95
|
+
}
|
|
96
|
+
function _is_native_reflect_construct() {
|
|
97
|
+
try {
|
|
98
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
99
|
+
} catch (_) {}
|
|
100
|
+
return (_is_native_reflect_construct = function() {
|
|
101
|
+
return !!result;
|
|
102
|
+
})();
|
|
103
|
+
}
|
|
104
|
+
var termNodeQuery = (0, _query.nodeQuery)("/term");
|
|
105
|
+
var EquationalUnifier = /*#__PURE__*/ function(Unifier) {
|
|
106
|
+
_inherits(EquationalUnifier, Unifier);
|
|
107
|
+
function EquationalUnifier() {
|
|
108
|
+
_class_call_check(this, EquationalUnifier);
|
|
109
|
+
return _call_super(this, EquationalUnifier, arguments);
|
|
110
|
+
}
|
|
111
|
+
_create_class(EquationalUnifier, [
|
|
112
|
+
{
|
|
113
|
+
key: "equateTerms",
|
|
114
|
+
value: function equateTerms(leftTermNode, rightTermNode, context) {
|
|
115
|
+
var termsEquated;
|
|
116
|
+
var generalNonTerminalNode = leftTermNode, specificNonTerminalNode = rightTermNode, nonTerminalNodeUnified = this.unifyNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, context);
|
|
117
|
+
termsEquated = nonTerminalNodeUnified; ///
|
|
118
|
+
return termsEquated;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
key: "equateStatements",
|
|
123
|
+
value: function equateStatements(statementANode, statementBNode, context) {
|
|
124
|
+
var statementsEquated;
|
|
125
|
+
var generalNonTerminalNode = statementANode, specificNonTerminalNode = statementBNode, nonTerminalNodeUnified = this.unifyNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, context);
|
|
126
|
+
statementsEquated = nonTerminalNodeUnified; ///
|
|
127
|
+
return statementsEquated;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
]);
|
|
131
|
+
return EquationalUnifier;
|
|
132
|
+
}(_unifier.default);
|
|
133
|
+
_define_property(EquationalUnifier, "maps", [
|
|
134
|
+
{
|
|
135
|
+
generalNodeQuery: termNodeQuery,
|
|
136
|
+
specificNodeQuery: termNodeQuery,
|
|
137
|
+
unify: function(leftTermNode, rightTermNode, context) {
|
|
138
|
+
var termUnified = false;
|
|
139
|
+
if (!termUnified) {
|
|
140
|
+
var depth = Infinity, leftTermNodeMatchesRightTermNode = leftTermNode.match(rightTermNode, depth);
|
|
141
|
+
if (leftTermNodeMatchesRightTermNode) {
|
|
142
|
+
termUnified = true;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (!termUnified) {
|
|
146
|
+
var equivalences = context.getEquivalences(), termNodes = [
|
|
147
|
+
leftTermNode,
|
|
148
|
+
rightTermNode
|
|
149
|
+
], equivalence = equivalences.findEquivalenceByTermNodes(termNodes);
|
|
150
|
+
if (equivalence !== null) {
|
|
151
|
+
termUnified = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (!termUnified) {
|
|
155
|
+
var depth1 = 1, leftTermNodeMatchesRightTermNode1 = leftTermNode.match(rightTermNode, depth1);
|
|
156
|
+
if (leftTermNodeMatchesRightTermNode1) {
|
|
157
|
+
var leftNonTerminalNode = leftTermNode, rightNonTerminalNode = rightTermNode, leftNonTerminalNodeChildNodes = leftNonTerminalNode.getChildNodes(), rightNonTerminalNodeChildNodes = rightNonTerminalNode.getChildNodes(), leftChildNodes = leftNonTerminalNodeChildNodes, rightChildNodes = rightNonTerminalNodeChildNodes, childNodesUnified = equationalUnifier.unifyChildNodes(leftChildNodes, rightChildNodes, context);
|
|
158
|
+
if (childNodesUnified) {
|
|
159
|
+
termUnified = true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return termUnified;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
]);
|
|
167
|
+
var equationalUnifier = new EquationalUnifier();
|
|
168
|
+
var _default = equationalUnifier;
|
|
169
|
+
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL2VxdWFudGlvbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVW5pZmllciBmcm9tIFwiLi4vdW5pZmllclwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKTtcblxuY2xhc3MgRXF1YXRpb25hbFVuaWZpZXIgZXh0ZW5kcyBVbmlmaWVyIHtcbiAgZXF1YXRlVGVybXMobGVmdFRlcm1Ob2RlLCByaWdodFRlcm1Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHRlcm1zRXF1YXRlZDtcblxuICAgIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBsZWZ0VGVybU5vZGUsIC8vL1xuICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gcmlnaHRUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgdGVybXNFcXVhdGVkID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gdGVybXNFcXVhdGVkO1xuICB9O1xuXG4gIGVxdWF0ZVN0YXRlbWVudHMoc3RhdGVtZW50QU5vZGUsIHN0YXRlbWVudEJOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudHNFcXVhdGVkO1xuXG4gICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudEFOb2RlLCAvLy9cbiAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudEJOb2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVVbmlmaWVkID0gdGhpcy51bmlmeU5vblRlcm1pbmFsTm9kZShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRzRXF1YXRlZCA9IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7IC8vL1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudHNFcXVhdGVkO1xuICB9O1xuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksICAvLy9cbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiB0ZXJtTm9kZVF1ZXJ5LCAvLy9cbiAgICAgIHVuaWZ5OiAobGVmdFRlcm1Ob2RlLCByaWdodFRlcm1Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghdGVybVVuaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBkZXB0aCA9IEluZmluaXR5LFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtTm9kZU1hdGNoZXNSaWdodFRlcm1Ob2RlID0gbGVmdFRlcm1Ob2RlLm1hdGNoKHJpZ2h0VGVybU5vZGUsIGRlcHRoKTtcblxuICAgICAgICAgIGlmIChsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSkge1xuICAgICAgICAgICAgdGVybVVuaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybVVuaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBlcXVpdmFsZW5jZXMgPSBjb250ZXh0LmdldEVxdWl2YWxlbmNlcygpLFxuICAgICAgICAgICAgICAgIHRlcm1Ob2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgIGxlZnRUZXJtTm9kZSxcbiAgICAgICAgICAgICAgICAgIHJpZ2h0VGVybU5vZGVcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGVxdWl2YWxlbmNlID0gZXF1aXZhbGVuY2VzLmZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzKHRlcm1Ob2Rlcyk7XG5cbiAgICAgICAgICBpZiAoZXF1aXZhbGVuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRlcm1VbmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgZGVwdGggPSAxLFxuICAgICAgICAgICAgICAgIGxlZnRUZXJtTm9kZU1hdGNoZXNSaWdodFRlcm1Ob2RlID0gbGVmdFRlcm1Ob2RlLm1hdGNoKHJpZ2h0VGVybU5vZGUsIGRlcHRoKTtcblxuICAgICAgICAgIGlmIChsZWZ0VGVybU5vZGVNYXRjaGVzUmlnaHRUZXJtTm9kZSkge1xuICAgICAgICAgICAgY29uc3QgbGVmdE5vblRlcm1pbmFsTm9kZSA9IGxlZnRUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgICByaWdodE5vblRlcm1pbmFsTm9kZSA9IHJpZ2h0VGVybU5vZGUsIC8vL1xuICAgICAgICAgICAgICAgICAgbGVmdE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBsZWZ0Tm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIHJpZ2h0Tm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHJpZ2h0Tm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICAgIGxlZnRDaGlsZE5vZGVzID0gbGVmdE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICAgICAgcmlnaHRDaGlsZE5vZGVzID0gcmlnaHROb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgICAgIGNoaWxkTm9kZXNVbmlmaWVkID0gZXF1YXRpb25hbFVuaWZpZXIudW5pZnlDaGlsZE5vZGVzKGxlZnRDaGlsZE5vZGVzLCByaWdodENoaWxkTm9kZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZiAoY2hpbGROb2Rlc1VuaWZpZWQpIHtcbiAgICAgICAgICAgICAgdGVybVVuaWZpZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXJtVW5pZmllZDtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IGVxdWF0aW9uYWxVbmlmaWVyID0gbmV3IEVxdWF0aW9uYWxVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGVxdWF0aW9uYWxVbmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJFcXVhdGlvbmFsVW5pZmllciIsImVxdWF0ZVRlcm1zIiwibGVmdFRlcm1Ob2RlIiwicmlnaHRUZXJtTm9kZSIsImNvbnRleHQiLCJ0ZXJtc0VxdWF0ZWQiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVVbmlmaWVkIiwidW5pZnlOb25UZXJtaW5hbE5vZGUiLCJlcXVhdGVTdGF0ZW1lbnRzIiwic3RhdGVtZW50QU5vZGUiLCJzdGF0ZW1lbnRCTm9kZSIsInN0YXRlbWVudHNFcXVhdGVkIiwiVW5pZmllciIsIm1hcHMiLCJnZW5lcmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJ1bmlmeSIsInRlcm1VbmlmaWVkIiwiZGVwdGgiLCJJbmZpbml0eSIsImxlZnRUZXJtTm9kZU1hdGNoZXNSaWdodFRlcm1Ob2RlIiwibWF0Y2giLCJlcXVpdmFsZW5jZXMiLCJnZXRFcXVpdmFsZW5jZXMiLCJ0ZXJtTm9kZXMiLCJlcXVpdmFsZW5jZSIsImZpbmRFcXVpdmFsZW5jZUJ5VGVybU5vZGVzIiwibGVmdE5vblRlcm1pbmFsTm9kZSIsInJpZ2h0Tm9uVGVybWluYWxOb2RlIiwibGVmdE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwicmlnaHROb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwibGVmdENoaWxkTm9kZXMiLCJyaWdodENoaWxkTm9kZXMiLCJjaGlsZE5vZGVzVW5pZmllZCIsImVxdWF0aW9uYWxVbmlmaWVyIiwidW5pZnlDaGlsZE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF5RkE7OztlQUFBOzs7OERBdkZvQjtxQkFFTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRWhDLElBQUEsQUFBTUMsa0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLFlBQVlDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxPQUFPO2dCQUM5QyxJQUFJQztnQkFFSixJQUFNQyx5QkFBeUJKLGNBQ3pCSywwQkFBMEJKLGVBQzFCSyx5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsd0JBQXdCQyx5QkFBeUJIO2dCQUUxR0MsZUFBZUcsd0JBQXdCLEdBQUc7Z0JBRTFDLE9BQU9IO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsaUJBQWlCQyxjQUFjLEVBQUVDLGNBQWMsRUFBRVIsT0FBTztnQkFDdEQsSUFBSVM7Z0JBRUosSUFBTVAseUJBQXlCSyxnQkFDekJKLDBCQUEwQkssZ0JBQzFCSix5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsd0JBQXdCQyx5QkFBeUJIO2dCQUUxR1Msb0JBQW9CTCx3QkFBd0IsR0FBRztnQkFFL0MsT0FBT0s7WUFDVDs7O1dBdkJJYjtFQUEwQmMsZ0JBQU87QUF5QnJDLGlCQXpCSWQsbUJBeUJHZSxRQUFPO0lBQ1o7UUFDRUMsa0JBQWtCbEI7UUFDbEJtQixtQkFBbUJuQjtRQUNuQm9CLE9BQU8sU0FBQ2hCLGNBQWNDLGVBQWVDO1lBQ25DLElBQUllLGNBQWM7WUFFbEIsSUFBSSxDQUFDQSxhQUFhO2dCQUNoQixJQUFNQyxRQUFRQyxVQUNSQyxtQ0FBbUNwQixhQUFhcUIsS0FBSyxDQUFDcEIsZUFBZWlCO2dCQUUzRSxJQUFJRSxrQ0FBa0M7b0JBQ3BDSCxjQUFjO2dCQUNoQjtZQUNGO1lBRUEsSUFBSSxDQUFDQSxhQUFhO2dCQUNoQixJQUFNSyxlQUFlcEIsUUFBUXFCLGVBQWUsSUFDdENDLFlBQVk7b0JBQ1Z4QjtvQkFDQUM7aUJBQ0QsRUFDRHdCLGNBQWNILGFBQWFJLDBCQUEwQixDQUFDRjtnQkFFNUQsSUFBSUMsZ0JBQWdCLE1BQU07b0JBQ3hCUixjQUFjO2dCQUNoQjtZQUNGO1lBRUEsSUFBSSxDQUFDQSxhQUFhO2dCQUNoQixJQUFNQyxTQUFRLEdBQ1JFLG9DQUFtQ3BCLGFBQWFxQixLQUFLLENBQUNwQixlQUFlaUI7Z0JBRTNFLElBQUlFLG1DQUFrQztvQkFDcEMsSUFBTU8sc0JBQXNCM0IsY0FDdEI0Qix1QkFBdUIzQixlQUN2QjRCLGdDQUFnQ0Ysb0JBQW9CRyxhQUFhLElBQ2pFQyxpQ0FBaUNILHFCQUFxQkUsYUFBYSxJQUNuRUUsaUJBQWlCSCwrQkFDakJJLGtCQUFrQkYsZ0NBQ2xCRyxvQkFBb0JDLGtCQUFrQkMsZUFBZSxDQUFDSixnQkFBZ0JDLGlCQUFpQi9CO29CQUU3RixJQUFJZ0MsbUJBQW1CO3dCQUNyQmpCLGNBQWM7b0JBQ2hCO2dCQUNGO1lBQ0Y7WUFFQSxPQUFPQTtRQUNUO0lBQ0Y7Q0FDRDtBQUdILElBQU1rQixvQkFBb0IsSUFBSXJDO0lBRTlCLFdBQWVxQyJ9
|
|
@@ -42,7 +42,7 @@ function stripBracketsFromTerm(term, context) {
|
|
|
42
42
|
var termNode = term.getNode(), bracketedTermChildNode = bracketedTermChildNodeFromTermNode(termNode);
|
|
43
43
|
if (bracketedTermChildNode !== null) {
|
|
44
44
|
var Term = _dom.default.Term, termNode1 = bracketedTermChildNode; ///
|
|
45
|
-
term = Term.
|
|
45
|
+
term = Term.fromTermNode(termNode1, context);
|
|
46
46
|
}
|
|
47
47
|
return term;
|
|
48
48
|
}
|
|
@@ -93,4 +93,4 @@ function contextFromStatement(statement, context) {
|
|
|
93
93
|
return context;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJhY2tldHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IGNvbWJpbmF0b3JCcmFja2V0ZWRDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2JyYWNrZXRlZC9jb21iaW5hdG9yXCI7XG5pbXBvcnQgY29uc3RydWN0b3JCcmFja2V0ZWRDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2JyYWNrZXRlZC9jb25zdHJ1Y3RvclwiO1xuXG5pbXBvcnQgeyBCUkFDS0VURURfVEVSTV9ERVBUSCwgQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gIGNvbnN0IHRlcm1Ob2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICBpZiAoYnJhY2tldGVkVGVybUNoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgVGVybSB9ID0gZG9tLFxuICAgICAgICAgIHRlcm1Ob2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZTsgIC8vL1xuXG4gICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlICE9PSBudWxsKSB7XG4gICAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gICAgY29uc3QgeyBTdGF0ZW1lbnQgfSA9IGRvbSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlOyAgLy8vXG5cbiAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaXBCcmFja2V0c0Zyb21UZXJtTm9kZSh0ZXJtTm9kZSkge1xuICBjb25zdCBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gYnJhY2tldGVkVGVybUNoaWxkTm9kZUZyb21UZXJtTm9kZSh0ZXJtTm9kZSk7XG5cbiAgaWYgKGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICB0ZXJtTm9kZSA9IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7ICAvLy9cbiAgfVxuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwQnJhY2tldHNGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlOyAgLy8vXG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGVGcm9tVGVybU5vZGUodGVybU5vZGUpIHtcbiAgbGV0IGJyYWNrZXRlZFRlcm1DaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGRlcHRoID0gQlJBQ0tFVEVEX1RFUk1fREVQVEgsXG4gICAgICAgIGJyYWNrZXRlZFRlcm1Ob2RlID0gY29uc3RydWN0b3JCcmFja2V0ZWRDb250ZXh0LmdldEJyYWNrZXRlZFRlcm1Ob2RlKCksXG4gICAgICAgIHRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRUZXJtTm9kZSA9IHRlcm1Ob2RlLm1hdGNoKGJyYWNrZXRlZFRlcm1Ob2RlLCBkZXB0aCk7XG5cbiAgaWYgKHRlcm1Ob2RlTWF0Y2hCcmFja2V0ZWRUZXJtTm9kZSkge1xuICAgIGNvbnN0IHNpbmd1bGFyVGVybU5vZGUgPSB0ZXJtTm9kZS5nZXRTaW5ndWxhclRlcm1Ob2RlKCk7XG5cbiAgICBicmFja2V0ZWRUZXJtQ2hpbGROb2RlID0gc2luZ3VsYXJUZXJtTm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFRlcm1DaGlsZE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKSB7XG4gIGxldCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGRlcHRoID0gQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCxcbiAgICAgICAgYnJhY2tldGVkU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3JCcmFja2V0ZWRDb250ZXh0LmdldEJyYWNrZXRlZFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkU3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGUubWF0Y2goYnJhY2tldGVkU3RhdGVtZW50Tm9kZSwgZGVwdGgpO1xuXG4gIGlmIChzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRTdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3Qgc2luZ3VsYXJTdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTaW5ndWxhclN0YXRlbWVudE5vZGUoKTtcblxuICAgIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IHNpbmd1bGFyU3RhdGVtZW50Tm9kZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTtcbn1cblxuZnVuY3Rpb24gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgdG9rZW5zID0gc3RhdGVtZW50VG9rZW5zLCAvLy9cbiAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0QW5kVG9rZW5zKGNvbnRleHQsIHRva2Vucyk7XG5cbiAgY29udGV4dCA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUiLCJicmFja2V0ZWRUZXJtQ2hpbGROb2RlRnJvbVRlcm1Ob2RlIiwic3RyaXBCcmFja2V0c0Zyb21TdGF0ZW1lbnQiLCJzdHJpcEJyYWNrZXRzRnJvbVN0YXRlbWVudE5vZGUiLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm0iLCJzdHJpcEJyYWNrZXRzRnJvbVRlcm1Ob2RlIiwidGVybSIsImNvbnRleHQiLCJ0ZXJtTm9kZSIsImdldE5vZGUiLCJicmFja2V0ZWRUZXJtQ2hpbGROb2RlIiwiVGVybSIsImRvbSIsImZyb21UZXJtTm9kZSIsInN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUiLCJjb250ZXh0RnJvbVN0YXRlbWVudCIsIlN0YXRlbWVudCIsImZyb21TdGF0ZW1lbnROb2RlIiwiZGVwdGgiLCJCUkFDS0VURURfVEVSTV9ERVBUSCIsImJyYWNrZXRlZFRlcm1Ob2RlIiwiY29uc3RydWN0b3JCcmFja2V0ZWRDb250ZXh0IiwiZ2V0QnJhY2tldGVkVGVybU5vZGUiLCJ0ZXJtTm9kZU1hdGNoQnJhY2tldGVkVGVybU5vZGUiLCJtYXRjaCIsInNpbmd1bGFyVGVybU5vZGUiLCJnZXRTaW5ndWxhclRlcm1Ob2RlIiwiQlJBQ0tFVEVEX1NUQVRFTUVOVF9ERVBUSCIsImJyYWNrZXRlZFN0YXRlbWVudE5vZGUiLCJjb21iaW5hdG9yQnJhY2tldGVkQ29udGV4dCIsImdldEJyYWNrZXRlZFN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hCcmFja2V0ZWRTdGF0ZW1lbnROb2RlIiwic2luZ3VsYXJTdGF0ZW1lbnROb2RlIiwiZ2V0U2luZ3VsYXJTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VG9rZW5zIiwiZ2V0VG9rZW5zIiwidG9rZW5zIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUNvbnRleHRBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTJFZ0JBO2VBQUFBOztRQWhCQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUEwQkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBOEJBQztlQUFBQTs7OzBEQXJDQTs0REFDUztpRUFDYztrRUFDQzt5QkFFd0I7Ozs7OztBQUV6RCxTQUFTRCxzQkFBc0JFLElBQUksRUFBRUMsT0FBTztJQUNqRCxJQUFNQyxXQUFXRixLQUFLRyxPQUFPLElBQ3ZCQyx5QkFBeUJULG1DQUFtQ087SUFFbEUsSUFBSUUsMkJBQTJCLE1BQU07UUFDbkMsSUFBTSxBQUFFQyxPQUFTQyxZQUFHLENBQVpELE1BQ0ZILFlBQVdFLHdCQUF5QixHQUFHO1FBRTdDSixPQUFPSyxLQUFLRSxZQUFZLENBQUNMLFdBQVVEO0lBQ3JDO0lBRUEsT0FBT0Q7QUFDVDtBQUVPLFNBQVNKLDJCQUEyQlksU0FBUyxFQUFFUCxPQUFPO0lBQzNELElBQU1RLGdCQUFnQkQsVUFBVUwsT0FBTyxJQUNqQ08sOEJBQThCaEIsNkNBQTZDZTtJQUVqRixJQUFJQyxnQ0FBZ0MsTUFBTTtRQUN4Q1QsVUFBVVUscUJBQXFCSCxXQUFXUCxVQUFVLEdBQUc7UUFFdkQsSUFBTSxBQUFFVyxZQUFjTixZQUFHLENBQWpCTSxXQUNGSCxpQkFBZ0JDLDZCQUE4QixHQUFHO1FBRXZERixZQUFZSSxVQUFVQyxpQkFBaUIsQ0FBQ0osZ0JBQWVSO0lBQ3pEO0lBRUEsT0FBT087QUFDVDtBQUVPLFNBQVNULDBCQUEwQkcsUUFBUTtJQUNoRCxJQUFNRSx5QkFBeUJULG1DQUFtQ087SUFFbEUsSUFBSUUsMkJBQTJCLE1BQU07UUFDbkNGLFdBQVdFLHdCQUF5QixHQUFHO0lBQ3pDO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNMLCtCQUErQlksYUFBYTtJQUMxRCxJQUFNQyw4QkFBOEJoQiw2Q0FBNkNlO0lBRWpGLElBQUlDLGdDQUFnQyxNQUFNO1FBQ3hDRCxnQkFBZ0JDLDZCQUE4QixHQUFHO0lBQ25EO0lBRUEsT0FBT0Q7QUFDVDtBQUVPLFNBQVNkLG1DQUFtQ08sUUFBUTtJQUN6RCxJQUFJRSx5QkFBeUI7SUFFN0IsSUFBTVUsUUFBUUMsK0JBQW9CLEVBQzVCQyxvQkFBb0JDLG9CQUEyQixDQUFDQyxvQkFBb0IsSUFDcEVDLGlDQUFpQ2pCLFNBQVNrQixLQUFLLENBQUNKLG1CQUFtQkY7SUFFekUsSUFBSUssZ0NBQWdDO1FBQ2xDLElBQU1FLG1CQUFtQm5CLFNBQVNvQixtQkFBbUI7UUFFckRsQix5QkFBeUJpQixrQkFBbUIsR0FBRztJQUNqRDtJQUVBLE9BQU9qQjtBQUNUO0FBRU8sU0FBU1YsNkNBQTZDZSxhQUFhO0lBQ3hFLElBQUlDLDhCQUE4QjtJQUVsQyxJQUFNSSxRQUFRUyxvQ0FBeUIsRUFDakNDLHlCQUF5QkMsbUJBQTBCLENBQUNDLHlCQUF5QixJQUM3RUMsMkNBQTJDbEIsY0FBY1csS0FBSyxDQUFDSSx3QkFBd0JWO0lBRTdGLElBQUlhLDBDQUEwQztRQUM1QyxJQUFNQyx3QkFBd0JuQixjQUFjb0Isd0JBQXdCO1FBRXBFbkIsOEJBQThCa0IsdUJBQXdCLEdBQUc7SUFDM0Q7SUFFQSxPQUFPbEI7QUFDVDtBQUVBLFNBQVNDLHFCQUFxQkgsU0FBUyxFQUFFUCxPQUFPO0lBQzlDLElBQU02QixrQkFBa0J0QixVQUFVdUIsU0FBUyxJQUNyQ0MsU0FBU0YsaUJBQ1RHLGVBQWVDLGNBQVksQ0FBQ0Msb0JBQW9CLENBQUNsQyxTQUFTK0I7SUFFaEUvQixVQUFVZ0MsY0FBYyxHQUFHO0lBRTNCLE9BQU9oQztBQUNUIn0=
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "subproofStringFromSubproofNode", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
function subproofStringFromSubproofNode(subproofNode, fileContext) {
|
|
12
|
-
var suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext), lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext), subproofString = "[".concat(suppositionStatementsOrNonsenseString, "]...").concat(lastStatementOrNonsenseString);
|
|
12
|
+
var suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext), lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext), subproofString = "[".concat(suppositionStatementsOrNonsenseString, "] ... ").concat(lastStatementOrNonsenseString);
|
|
13
13
|
return subproofString;
|
|
14
14
|
}
|
|
15
15
|
function suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, fileContext) {
|
|
@@ -39,4 +39,4 @@ function statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNod
|
|
|
39
39
|
return statementOrNonsenseString;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCBzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nID0gc3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgbGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgIHN1YnByb29mU3RyaW5nID0gYFske3N1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmd9XSAuLi4gJHtsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdWJwcm9vZlN0cmluZztcbn1cblxuZnVuY3Rpb24gc3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uTm9kZXMgPSBzdWJwcm9vZk5vZGUuZ2V0U3VwcG9zaXRpb25Ob2RlcygpLFxuICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nID0gc3VwcG9zaXRpb25Ob2Rlcy5yZWR1Y2UoKHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcsIHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uT3JTdGVwTm9kZSA9IHN1cHBvc2l0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgIHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1cHBvc2l0aW9uT3JTdGVwTm9kZShzdXBwb3NpdGlvbk9yU3RlcE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nOyAvLy9cblxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgPSAoc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmd9LCAke3N1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZzsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZztcbiAgICAgICAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IGxhc3RTdGVwTm9kZSA9IHN1YnByb29mTm9kZS5nZXRMYXN0U3RlcE5vZGUoKSxcbiAgICAgICAgc3VwcG9zaXRpb25PclN0ZXBOb2RlID0gbGFzdFN0ZXBOb2RlLCAvLy9cbiAgICAgICAgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyA9IHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VwcG9zaXRpb25PclN0ZXBOb2RlKHN1cHBvc2l0aW9uT3JTdGVwTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICBsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyA9IHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmc7IC8vL1xuXG4gIHJldHVybiBsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZztcbn1cblxuZnVuY3Rpb24gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdXBwb3NpdGlvbk9yU3RlcE5vZGUoc3VwcG9zaXRpb25PclN0ZXBOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZztcblxuICBjb25zdCBub25zZW5zZU5vZGUgPSBzdXBwb3NpdGlvbk9yU3RlcE5vZGUuZ2V0Tm9uc2Vuc2VOb2RlKCksXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvbk9yU3RlcE5vZGUuZ2V0U3RhdGVtZW50Tm9kZSgpO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKG5vbnNlbnNlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG5vbnNlbnNlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG5vbnNlbnNlTm9kZSk7XG5cbiAgICBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gbm9uc2Vuc2VTdHJpbmc7IC8vL1xuICB9IGVsc2UgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gc3RhdGVtZW50U3RyaW5nOyAgLy8vXG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZztcbn0iXSwibmFtZXMiOlsic3VicHJvb2ZTdHJpbmdGcm9tU3VicHJvb2ZOb2RlIiwic3VicHJvb2ZOb2RlIiwiZmlsZUNvbnRleHQiLCJzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nIiwic3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZSIsImxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nIiwibGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlIiwic3VicHJvb2ZTdHJpbmciLCJzdXBwb3NpdGlvbk5vZGVzIiwiZ2V0U3VwcG9zaXRpb25Ob2RlcyIsInJlZHVjZSIsInN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uT3JTdGVwTm9kZSIsInN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmciLCJzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1cHBvc2l0aW9uT3JTdGVwTm9kZSIsInN1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyIsImxhc3RTdGVwTm9kZSIsImdldExhc3RTdGVwTm9kZSIsIm5vbnNlbnNlTm9kZSIsImdldE5vbnNlbnNlTm9kZSIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwibm9uc2Vuc2VTdHJpbmciLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsK0JBQStCQyxZQUFZLEVBQUVDLFdBQVc7SUFDdEUsSUFBTUMsd0NBQXdDQyxxREFBcURILGNBQWNDLGNBQzNHRyxnQ0FBZ0NDLDhDQUE4Q0wsY0FBY0MsY0FDNUZLLGlCQUFpQixBQUFDLElBQWlERixPQUE5Q0YsdUNBQXNDLFVBQXNDLE9BQTlCRTtJQUV6RSxPQUFPRTtBQUNUO0FBRUEsU0FBU0gscURBQXFESCxZQUFZLEVBQUVDLFdBQVc7SUFDckYsSUFBTU0sbUJBQW1CUCxhQUFhUSxtQkFBbUIsSUFDbkROLHdDQUF3Q0ssaUJBQWlCRSxNQUFNLENBQUMsU0FBQ1AsdUNBQXVDUTtRQUN0RyxJQUFNQyx3QkFBd0JELGlCQUN4QkUsNEJBQTRCQyxtREFBbURGLHVCQUF1QlYsY0FDdEdhLHVDQUF1Q0YsMkJBQTJCLEdBQUc7UUFFM0VWLHdDQUF3QyxBQUFDQSwwQ0FBMEMsT0FDekMsQUFBQyxHQUE0Q1ksT0FBMUNaLHVDQUFzQyxNQUF5QyxPQUFyQ1ksd0NBQzNDQSxzQ0FBc0MsR0FBRztRQUVyRixPQUFPWjtJQUNULEdBQUc7SUFFVCxPQUFPQTtBQUNUO0FBRUEsU0FBU0csOENBQThDTCxZQUFZLEVBQUVDLFdBQVc7SUFDOUUsSUFBTWMsZUFBZWYsYUFBYWdCLGVBQWUsSUFDM0NMLHdCQUF3QkksY0FDeEJILDRCQUE0QkMsbURBQW1ERix1QkFBdUJWLGNBQ3RHRyxnQ0FBZ0NRLDJCQUEyQixHQUFHO0lBRXBFLE9BQU9SO0FBQ1Q7QUFFQSxTQUFTUyxtREFBbURGLHFCQUFxQixFQUFFVixXQUFXO0lBQzVGLElBQUlXO0lBRUosSUFBTUssZUFBZU4sc0JBQXNCTyxlQUFlLElBQ3BEQyxnQkFBZ0JSLHNCQUFzQlMsZ0JBQWdCO0lBRTVELElBQUksT0FBTztJQUNULEdBQUc7SUFDTCxPQUFPLElBQUlILGlCQUFpQixNQUFNO1FBQ2hDLElBQU1JLGlCQUFpQnBCLFlBQVlxQixZQUFZLENBQUNMO1FBRWhETCw0QkFBNEJTLGdCQUFnQixHQUFHO0lBQ2pELE9BQU8sSUFBSUYsa0JBQWtCLE1BQU07UUFDakMsSUFBTUksa0JBQWtCdEIsWUFBWXFCLFlBQVksQ0FBQ0g7UUFFakRQLDRCQUE0QlcsaUJBQWtCLEdBQUc7SUFDbkQ7SUFFQSxPQUFPWDtBQUNUIn0=
|
|
@@ -10,9 +10,6 @@ function _export(target, all) {
|
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
12
|
_export(exports, {
|
|
13
|
-
get unifyEquality () {
|
|
14
|
-
return unifyEquality;
|
|
15
|
-
},
|
|
16
13
|
get unifyMetavariable () {
|
|
17
14
|
return unifyMetavariable;
|
|
18
15
|
},
|
|
@@ -36,7 +33,6 @@ _export(exports, {
|
|
|
36
33
|
}
|
|
37
34
|
});
|
|
38
35
|
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
39
|
-
var _equality = /*#__PURE__*/ _interop_require_default(require("../unifier/equality"));
|
|
40
36
|
var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/metaLevel"));
|
|
41
37
|
var _metavariable = /*#__PURE__*/ _interop_require_default(require("../unifier/metavariable"));
|
|
42
38
|
var _intrinsicLevel = /*#__PURE__*/ _interop_require_default(require("../unifier/intrinsicLevel"));
|
|
@@ -47,12 +43,6 @@ function _interop_require_default(obj) {
|
|
|
47
43
|
default: obj
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
|
-
function unifyEquality(equality, context) {
|
|
51
|
-
var equalityUnified;
|
|
52
|
-
var leftTerm = equality.getLeftTerm(), rightTerm = equality.getRightTerm(), leftTermNode = leftTerm.getNode(), rightTermNode = rightTerm.getNode();
|
|
53
|
-
equalityUnified = _equality.default.unify(leftTermNode, rightTermNode, context);
|
|
54
|
-
return equalityUnified;
|
|
55
|
-
}
|
|
56
46
|
function unifyStatement(generalStatement, specificStatement, substitutions, generalContext, specificContext) {
|
|
57
47
|
var statementUnified;
|
|
58
48
|
var generalStatementNode = generalStatement.getNode(), specificStatementNode = specificStatement.getNode(), generalStatementTokens = generalStatement.getTokens(), specificStatementTokens = specificStatement.getTokens();
|
|
@@ -118,4 +108,4 @@ function contextFromTokens(tokens, context) {
|
|
|
118
108
|
return context;
|
|
119
109
|
}
|
|
120
110
|
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBlcXVhbGl0eVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvZXF1YWxpdHlcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlFcXVhbGl0eShlcXVhbGl0eSwgY29udGV4dCkge1xuICBsZXQgZXF1YWxpdHlVbmlmaWVkO1xuXG4gIGNvbnN0IGxlZnRUZXJtID0gZXF1YWxpdHkuZ2V0TGVmdFRlcm0oKSxcbiAgICAgICAgcmlnaHRUZXJtID0gZXF1YWxpdHkuZ2V0UmlnaHRUZXJtKCksXG4gICAgICAgIGxlZnRUZXJtTm9kZSA9IGxlZnRUZXJtLmdldE5vZGUoKSxcbiAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHJpZ2h0VGVybS5nZXROb2RlKCk7XG5cbiAgZXF1YWxpdHlVbmlmaWVkID0gZXF1YWxpdHlVbmlmaWVyLnVuaWZ5KGxlZnRUZXJtTm9kZSwgcmlnaHRUZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGVxdWFsaXR5VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50KGdlbmVyYWxTdGF0ZW1lbnQsIHNwZWNpZmljU3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgc3RhdGVtZW50VW5pZmllZCA9IHVuaWZpZWRBdE1ldGFMZXZlbDsgLy8vXG5cbiAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN1YnN0aXR1dGlvbihnZW5lcmFsU3Vic3RpdHV0aW9uLCBzcGVjaWZpY1N1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgc3Vic3RpdHV0aW9uVW5pZmllZDtcblxuICBjb25zdCBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMgPSBnZW5lcmFsU3Vic3RpdHV0aW9uLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY1N1YnN0aXR1dGlvblRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgIC8vL1xuXG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlLFxuICAgICAgICB1bmlmaWVkQXRNZXRhTGV2ZWwgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdWJzdGl0dXRpb25VbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3Vic3RpdHV0aW9uVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5TWV0YXZhcmlhYmxlKGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVkID0gbWV0YXZhcmlhYmxlVW5pZmllci51bmlmeShnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSwgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3Rvcih0ZXJtLCBjb25zdHJ1Y3RvciwgY29udGV4dCkge1xuICBsZXQgdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3I7XG5cbiAgY29uc3QgdGVybU5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgY29uc3RydWN0b3JUZXJtID0gY29uc3RydWN0b3IuZ2V0VGVybSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm1Ob2RlID0gY29uc3RydWN0b3JUZXJtLmdldE5vZGUoKTtcblxuICB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciA9IHRlcm1XaXRoQ29uc3RydWN0b3JVbmlmaWVyLnVuaWZ5KGNvbnN0cnVjdG9yVGVybU5vZGUsIHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdGVybVVuaWZpZWRXaXRoQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xuXG4gIGNvbnN0IGdlbmVyYWxTdGF0ZW1lbnROb2RlID0gZ2VuZXJhbFN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50Tm9kZSA9IHNwZWNpZmljU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN0YXRlbWVudFRva2VucyA9IGdlbmVyYWxTdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3RhdGVtZW50VG9rZW5zID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN0YXRlbWVudFRva2VucyA9IHN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudCA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlID0gY29tYmluYXRvclN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldFRva2VucygpO1xuXG4gIGxldCBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHQsIC8vL1xuICAgICAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dDsgIC8vL1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoY29tYmluYXRvclN0YXRlbWVudFRva2VucywgZ2VuZXJhbENvbnRleHQpOyAgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3RhdGVtZW50VG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yID0gc3RhdGVtZW50V2l0aENvbWJpbmF0b3JVbmlmaWVyLnVuaWZ5KGNvbWJpbmF0b3JTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5KGdlbmVyYWxNZXRhdmFyaWFibGUsIHNwZWNpZmljTWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcblxuICBjb25zdCBnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldFRva2VucygpLFxuICAgICAgICBzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldFRva2VucygpO1xuXG4gIGdlbmVyYWxDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucywgZ2VuZXJhbENvbnRleHQpOyAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzcGVjaWZpY01ldGF2YXJpYWJsZVRva2Vucywgc3BlY2lmaWNDb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGU7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5ID0gaW50cmluc2ljTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHk7XG59XG5cbmZ1bmN0aW9uIGNvbnRleHRGcm9tVG9rZW5zKHRva2VucywgY29udGV4dCkge1xuICBjb25zdCBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUNvbnRleHRBbmRUb2tlbnMoY29udGV4dCwgdG9rZW5zKTtcblxuICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlFcXVhbGl0eSIsInVuaWZ5TWV0YXZhcmlhYmxlIiwidW5pZnlNZXRhdmFyaWFibGVJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudEludHJpbnNpY2FsbHkiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdWJzdGl0dXRpb24iLCJ1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3IiLCJlcXVhbGl0eSIsImNvbnRleHQiLCJlcXVhbGl0eVVuaWZpZWQiLCJsZWZ0VGVybSIsImdldExlZnRUZXJtIiwicmlnaHRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwibGVmdFRlcm1Ob2RlIiwiZ2V0Tm9kZSIsInJpZ2h0VGVybU5vZGUiLCJlcXVhbGl0eVVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxTdGF0ZW1lbnQiLCJzcGVjaWZpY1N0YXRlbWVudCIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJnZW5lcmFsU3RhdGVtZW50Tm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsImdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMiLCJnZXRUb2tlbnMiLCJzcGVjaWZpY1N0YXRlbWVudFRva2VucyIsImNvbnRleHRGcm9tVG9rZW5zIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidW5pZmllZEF0TWV0YUxldmVsIiwibWV0YUxldmVsVW5pZmllciIsImdlbmVyYWxTdWJzdGl0dXRpb24iLCJzcGVjaWZpY1N1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblVuaWZpZWQiLCJnZW5lcmFsU3Vic3RpdHV0aW9uTm9kZSIsInNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSIsImdlbmVyYWxTdWJzdGl0dXRpb25Ub2tlbnMiLCJzcGVjaWZpY1N1YnN0aXR1dGlvblRva2VucyIsImdlbmVyYWxNZXRhdmFyaWFibGUiLCJzcGVjaWZpY01ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVVuaWZpZWQiLCJnZW5lcmFsTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSIsImdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMiLCJzcGVjaWZpY01ldGF2YXJpYWJsZVRva2VucyIsIm1ldGF2YXJpYWJsZVVuaWZpZXIiLCJ0ZXJtIiwiY29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciIsInRlcm1Ob2RlIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJ0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciIsIm1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5IiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwic3RhdGVtZW50IiwiY29tYmluYXRvciIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwic3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFRva2VucyIsImNvbWJpbmF0b3JTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMiLCJzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIiLCJ0b2tlbnMiLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tQ29udGV4dEFuZFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztRQVVnQkE7ZUFBQUE7O1FBdURBQztlQUFBQTs7UUFzRUFDO2VBQUFBOztRQWhIQUM7ZUFBQUE7O1FBdUVBQztlQUFBQTs7UUFvQkFDO2VBQUFBOztRQXRFQUM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7OzREQWhGUzsrREFDRztnRUFDQzttRUFDRztxRUFDRTswRUFDSzs4RUFDSTs7Ozs7O0FBRXBDLFNBQVNQLGNBQWNRLFFBQVEsRUFBRUMsT0FBTztJQUM3QyxJQUFJQztJQUVKLElBQU1DLFdBQVdILFNBQVNJLFdBQVcsSUFDL0JDLFlBQVlMLFNBQVNNLFlBQVksSUFDakNDLGVBQWVKLFNBQVNLLE9BQU8sSUFDL0JDLGdCQUFnQkosVUFBVUcsT0FBTztJQUV2Q04sa0JBQWtCUSxpQkFBZSxDQUFDQyxLQUFLLENBQUNKLGNBQWNFLGVBQWVSO0lBRXJFLE9BQU9DO0FBQ1Q7QUFF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
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmljYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaW5nXCI7XG5cbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcbmltcG9ydCBtZXRhTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZVVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5pbXBvcnQgdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvdGVybVdpdGhDb25zdHJ1Y3RvclwiO1xuaW1wb3J0IHN0YXRlbWVudFdpdGhDb21iaW5hdG9yVW5pZmllciBmcm9tIFwiLi4vdW5pZmllci9zdGF0ZW1lbnRXaXRoQ29tYmluYXRvclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnQoZ2VuZXJhbFN0YXRlbWVudCwgc3BlY2lmaWNTdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsU3RhdGVtZW50VG9rZW5zID0gZ2VuZXJhbFN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnRUb2tlbnMgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXRUb2tlbnMoKTtcblxuICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKGdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3BlY2lmaWNTdGF0ZW1lbnRUb2tlbnMsIHNwZWNpZmljQ29udGV4dCk7ICAvLy9cblxuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICB1bmlmaWVkQXRNZXRhTGV2ZWwgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICBzdGF0ZW1lbnRVbmlmaWVkID0gdW5pZmllZEF0TWV0YUxldmVsOyAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3Vic3RpdHV0aW9uKGdlbmVyYWxTdWJzdGl0dXRpb24sIHNwZWNpZmljU3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGxldCBzdWJzdGl0dXRpb25VbmlmaWVkO1xuXG4gIGNvbnN0IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlID0gZ2VuZXJhbFN1YnN0aXR1dGlvbi5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uTm9kZSA9IHNwZWNpZmljU3Vic3RpdHV0aW9uLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyA9IGdlbmVyYWxTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zID0gc3BlY2lmaWNTdWJzdGl0dXRpb24uZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsU3Vic3RpdHV0aW9uVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAgLy8vXG5cbiAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSA9IGdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlLCAvLy9cbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUgPSBzcGVjaWZpY1N1YnN0aXR1dGlvbk5vZGUsXG4gICAgICAgIHVuaWZpZWRBdE1ldGFMZXZlbCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHN1YnN0aXR1dGlvblVuaWZpZWQgPSB1bmlmaWVkQXRNZXRhTGV2ZWw7IC8vL1xuXG4gIHJldHVybiBzdWJzdGl0dXRpb25VbmlmaWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGUoZ2VuZXJhbE1ldGF2YXJpYWJsZSwgc3BlY2lmaWNNZXRhdmFyaWFibGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWQ7XG5cbiAgY29uc3QgZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXRUb2tlbnMoKSxcbiAgICAgICAgc3BlY2lmaWNNZXRhdmFyaWFibGVUb2tlbnMgPSBzcGVjaWZpY01ldGF2YXJpYWJsZS5nZXRUb2tlbnMoKTtcblxuICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKGdlbmVyYWxNZXRhdmFyaWFibGVUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3BlY2lmaWNNZXRhdmFyaWFibGVUb2tlbnMsIHNwZWNpZmljQ29udGV4dCk7IC8vL1xuXG4gIG1ldGF2YXJpYWJsZVVuaWZpZWQgPSBtZXRhdmFyaWFibGVVbmlmaWVyLnVuaWZ5KGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY01ldGF2YXJpYWJsZU5vZGUsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yKHRlcm0sIGNvbnN0cnVjdG9yLCBjb250ZXh0KSB7XG4gIGxldCB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvcjtcblxuICBjb25zdCB0ZXJtTm9kZSA9IHRlcm0uZ2V0Tm9kZSgpLFxuICAgICAgICBjb25zdHJ1Y3RvclRlcm0gPSBjb25zdHJ1Y3Rvci5nZXRUZXJtKCksXG4gICAgICAgIGNvbnN0cnVjdG9yVGVybU5vZGUgPSBjb25zdHJ1Y3RvclRlcm0uZ2V0Tm9kZSgpO1xuXG4gIHRlcm1VbmlmaWVkV2l0aENvbnN0cnVjdG9yID0gdGVybVdpdGhDb25zdHJ1Y3RvclVuaWZpZXIudW5pZnkoY29uc3RydWN0b3JUZXJtTm9kZSwgdGVybU5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiB0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50SW50cmluc2ljYWxseShnZW5lcmFsU3RhdGVtZW50LCBzcGVjaWZpY1N0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHk7XG5cbiAgY29uc3QgZ2VuZXJhbFN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBnZW5lcmFsU3RhdGVtZW50VG9rZW5zID0gZ2VuZXJhbFN0YXRlbWVudC5nZXRUb2tlbnMoKSxcbiAgICAgICAgc3BlY2lmaWNTdGF0ZW1lbnRUb2tlbnMgPSBzcGVjaWZpY1N0YXRlbWVudC5nZXRUb2tlbnMoKTtcblxuICBnZW5lcmFsQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKGdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMsIGdlbmVyYWxDb250ZXh0KTsgLy8vXG5cbiAgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dEZyb21Ub2tlbnMoc3BlY2lmaWNTdGF0ZW1lbnRUb2tlbnMsIHNwZWNpZmljQ29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlOyAvLy9cblxuICBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseSA9IGludHJpbnNpY0xldmVsVW5pZmllci51bmlmeShnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvcihzdGF0ZW1lbnQsIGNvbWJpbmF0b3IsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50VG9rZW5zID0gc3RhdGVtZW50LmdldFRva2VucygpLFxuICAgICAgICBjb21iaW5hdG9yU3RhdGVtZW50ID0gY29tYmluYXRvci5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yU3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgY29tYmluYXRvclN0YXRlbWVudFRva2VucyA9IGNvbWJpbmF0b3JTdGF0ZW1lbnQuZ2V0VG9rZW5zKCk7XG5cbiAgbGV0IGdlbmVyYWxDb250ZXh0ID0gY29udGV4dCwgLy8vXG4gICAgICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0OyAgLy8vXG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2Vucyhjb21iaW5hdG9yU3RhdGVtZW50VG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7ICAvLy9cblxuICBzcGVjaWZpY0NvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhzdGF0ZW1lbnRUb2tlbnMsIHNwZWNpZmljQ29udGV4dCk7ICAvLy9cblxuICBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IgPSBzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIudW5pZnkoY29tYmluYXRvclN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlmeU1ldGF2YXJpYWJsZUludHJpbnNpY2FsbHkoZ2VuZXJhbE1ldGF2YXJpYWJsZSwgc3BlY2lmaWNNZXRhdmFyaWFibGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5O1xuXG4gIGNvbnN0IGdlbmVyYWxNZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyA9IGdlbmVyYWxNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zID0gc3BlY2lmaWNNZXRhdmFyaWFibGUuZ2V0VG9rZW5zKCk7XG5cbiAgZ2VuZXJhbENvbnRleHQgPSBjb250ZXh0RnJvbVRva2VucyhnZW5lcmFsTWV0YXZhcmlhYmxlVG9rZW5zLCBnZW5lcmFsQ29udGV4dCk7IC8vL1xuXG4gIHNwZWNpZmljQ29udGV4dCA9IGNvbnRleHRGcm9tVG9rZW5zKHNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zLCBzcGVjaWZpY0NvbnRleHQpOyAvLy9cblxuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE1ldGF2YXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlVW5pZmllZEludHJpbnNpY2FsbHkgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVkSW50cmluc2ljYWxseTtcbn1cblxuZnVuY3Rpb24gY29udGV4dEZyb21Ub2tlbnModG9rZW5zLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpO1xuXG4gIGNvbnRleHQgPSBsb2NhbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gY29udGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeU1ldGF2YXJpYWJsZSIsInVuaWZ5TWV0YXZhcmlhYmxlSW50cmluc2ljYWxseSIsInVuaWZ5U3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnRJbnRyaW5zaWNhbGx5IiwidW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvciIsInVuaWZ5U3Vic3RpdHV0aW9uIiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9yIiwiZ2VuZXJhbFN0YXRlbWVudCIsInNwZWNpZmljU3RhdGVtZW50Iiwic3Vic3RpdHV0aW9ucyIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0Iiwic3RhdGVtZW50VW5pZmllZCIsImdlbmVyYWxTdGF0ZW1lbnROb2RlIiwiZ2V0Tm9kZSIsInNwZWNpZmljU3RhdGVtZW50Tm9kZSIsImdlbmVyYWxTdGF0ZW1lbnRUb2tlbnMiLCJnZXRUb2tlbnMiLCJzcGVjaWZpY1N0YXRlbWVudFRva2VucyIsImNvbnRleHRGcm9tVG9rZW5zIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlIiwidW5pZmllZEF0TWV0YUxldmVsIiwibWV0YUxldmVsVW5pZmllciIsInVuaWZ5IiwiZ2VuZXJhbFN1YnN0aXR1dGlvbiIsInNwZWNpZmljU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uVW5pZmllZCIsImdlbmVyYWxTdWJzdGl0dXRpb25Ob2RlIiwic3BlY2lmaWNTdWJzdGl0dXRpb25Ob2RlIiwiZ2VuZXJhbFN1YnN0aXR1dGlvblRva2VucyIsInNwZWNpZmljU3Vic3RpdHV0aW9uVG9rZW5zIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZSIsInNwZWNpZmljTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlVW5pZmllZCIsImdlbmVyYWxNZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNNZXRhdmFyaWFibGVOb2RlIiwiZ2VuZXJhbE1ldGF2YXJpYWJsZVRva2VucyIsInNwZWNpZmljTWV0YXZhcmlhYmxlVG9rZW5zIiwibWV0YXZhcmlhYmxlVW5pZmllciIsInRlcm0iLCJjb25zdHJ1Y3RvciIsImNvbnRleHQiLCJ0ZXJtVW5pZmllZFdpdGhDb25zdHJ1Y3RvciIsInRlcm1Ob2RlIiwiY29uc3RydWN0b3JUZXJtIiwiZ2V0VGVybSIsImNvbnN0cnVjdG9yVGVybU5vZGUiLCJ0ZXJtV2l0aENvbnN0cnVjdG9yVW5pZmllciIsIm1ldGF2YXJpYWJsZVVuaWZpZWRJbnRyaW5zaWNhbGx5IiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwic3RhdGVtZW50IiwiY29tYmluYXRvciIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwic3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFRva2VucyIsImNvbWJpbmF0b3JTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImNvbWJpbmF0b3JTdGF0ZW1lbnRUb2tlbnMiLCJzdGF0ZW1lbnRXaXRoQ29tYmluYXRvclVuaWZpZXIiLCJ0b2tlbnMiLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tQ29udGV4dEFuZFRva2VucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztRQW1EZ0JBO2VBQUFBOztRQXNFQUM7ZUFBQUE7O1FBaEhBQztlQUFBQTs7UUF1RUFDO2VBQUFB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
|
package/package.json
CHANGED
package/src/context/local.js
CHANGED
|
@@ -123,53 +123,14 @@ class LocalContext {
|
|
|
123
123
|
|
|
124
124
|
const equalityReflexive = equality.isReflexive();
|
|
125
125
|
|
|
126
|
-
if (equalityReflexive) {
|
|
127
|
-
|
|
128
|
-
} else {
|
|
129
|
-
const leftTerm = equality.getLeftTerm(),
|
|
130
|
-
rightTerm = equality.getRightTerm(),
|
|
131
|
-
leftEquivalence = this.findEquivalenceByTerm(leftTerm),
|
|
132
|
-
rightEquivalence = this.findEquivalenceByTerm(rightTerm);
|
|
133
|
-
|
|
134
|
-
if (false) {
|
|
135
|
-
///
|
|
136
|
-
} else if ((leftEquivalence === null) && (rightEquivalence === null)) {
|
|
137
|
-
const equivalence = Equivalence.fromLeftTermAndRightTerm(leftTerm, rightTerm);
|
|
138
|
-
|
|
139
|
-
this.addEquivalence(equivalence, context);
|
|
140
|
-
|
|
141
|
-
equalityAdded = true;
|
|
142
|
-
} else if ((leftEquivalence !== null) && (rightEquivalence === null)) {
|
|
143
|
-
leftEquivalence.addTerm(rightTerm, context);
|
|
144
|
-
|
|
145
|
-
equalityAdded = true;
|
|
146
|
-
} else if ((leftEquivalence === null) && (rightEquivalence !== null)) {
|
|
147
|
-
rightEquivalence.addTerm(leftTerm, context);
|
|
148
|
-
|
|
149
|
-
equalityAdded = true;
|
|
150
|
-
} else if ((leftEquivalence !== null) && (rightEquivalence !== null)) {
|
|
151
|
-
let equivalence;
|
|
152
|
-
|
|
153
|
-
if (leftEquivalence === rightEquivalence) {
|
|
154
|
-
equivalence = leftEquivalence; ///
|
|
155
|
-
} else {
|
|
156
|
-
equivalence = Equivalence.merge(leftEquivalence, rightEquivalence);
|
|
157
|
-
|
|
158
|
-
this.removeEquivalence(leftEquivalence, context);
|
|
126
|
+
if (!equalityReflexive) {
|
|
127
|
+
const equivalence = Equivalence.fromEquality(equality);
|
|
159
128
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.addEquivalence(equivalence, context);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
equivalence.addTerm(leftTerm, context);
|
|
166
|
-
|
|
167
|
-
equivalence.addTerm(rightTerm, context);
|
|
168
|
-
|
|
169
|
-
equalityAdded = true;
|
|
170
|
-
}
|
|
129
|
+
this.equivalences = this.equivalences.mergedWithEquivalence(equivalence, context);
|
|
171
130
|
}
|
|
172
131
|
|
|
132
|
+
equalityAdded = true;
|
|
133
|
+
|
|
173
134
|
return equalityAdded;
|
|
174
135
|
}
|
|
175
136
|
|
|
@@ -188,10 +149,6 @@ class LocalContext {
|
|
|
188
149
|
return variableAdded;
|
|
189
150
|
}
|
|
190
151
|
|
|
191
|
-
addEquivalence(equivalence, context) { return this.equivalences.addEquivalence(equivalence, context); }
|
|
192
|
-
|
|
193
|
-
removeEquivalence(equivalence, context) { return this.equivalences.removeEquivalence(equivalence, context); }
|
|
194
|
-
|
|
195
152
|
addStepOrSubproof(stepOrSubproof) {
|
|
196
153
|
this.stepsOrSubproofs.push(stepOrSubproof);
|
|
197
154
|
}
|
|
@@ -83,7 +83,9 @@ export default domAssigned(class PropertyAssertion {
|
|
|
83
83
|
verifiedWhenDerived = this.verifyWhenDerived(context);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
if (verifiedWhenStated || verifiedWhenDerived) {
|
|
87
|
+
verified = true;
|
|
88
|
+
}
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
|
|
@@ -43,7 +43,9 @@ export default domAssigned(class TypeAssertion {
|
|
|
43
43
|
verifiedWhenDerived = this.verifyWhenDerived(context);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
if (verifiedWhenStated || verifiedWhenDerived) {
|
|
47
|
+
verified = true;
|
|
48
|
+
}
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
if (verified) {
|
package/src/dom/axiom.js
CHANGED
|
@@ -79,17 +79,16 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
|
|
|
79
79
|
return signatureMatches;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
unifyStep(step, substitutions,
|
|
82
|
+
unifyStep(step, substitutions, context) {
|
|
83
83
|
let stepUnified = false;
|
|
84
84
|
|
|
85
|
-
const
|
|
86
|
-
stepString = step.getString(),
|
|
85
|
+
const stepString = step.getString(),
|
|
87
86
|
axiomString = this.string; ///
|
|
88
87
|
|
|
89
88
|
context.trace(`Unifying the '${stepString}' step with the '${axiomString}' axiom...`);
|
|
90
89
|
|
|
91
90
|
const statement = step.getStatement(),
|
|
92
|
-
statementUnified = this.unifyStatement(statement, substitutions,
|
|
91
|
+
statementUnified = this.unifyStatement(statement, substitutions, context);
|
|
93
92
|
|
|
94
93
|
if (statementUnified) {
|
|
95
94
|
stepUnified = true;
|
|
@@ -111,10 +110,10 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
|
|
|
111
110
|
|
|
112
111
|
context.trace(`Unifying the '${lastStepString}' last step with the '${axiomString}' axiom...`)
|
|
113
112
|
|
|
114
|
-
const
|
|
115
|
-
|
|
113
|
+
const statement = lastStep.getStatement(),
|
|
114
|
+
statementUnified = this.unifyStatementWithDeduction(statement, substitutions, generalContext, specificContext);
|
|
116
115
|
|
|
117
|
-
if (
|
|
116
|
+
if (statementUnified) {
|
|
118
117
|
lastStepUnified = true;
|
|
119
118
|
}
|
|
120
119
|
|
|
@@ -125,16 +124,19 @@ export default domAssigned(class Axiom extends TopLevelAssertion {
|
|
|
125
124
|
return lastStepUnified;
|
|
126
125
|
}
|
|
127
126
|
|
|
128
|
-
unifySubproof(subproof, substitutions,
|
|
127
|
+
unifySubproof(subproof, substitutions, context) {
|
|
129
128
|
let subproofUnified = false;
|
|
130
129
|
|
|
131
|
-
const
|
|
132
|
-
axiomString = this.string, ///
|
|
130
|
+
const axiomString = this.string, ///
|
|
133
131
|
subproofString = subproof.getString();
|
|
134
132
|
|
|
135
133
|
context.trace(`Unifying the '${subproofString}' subproof with the '${axiomString}' axiom...`);
|
|
136
134
|
|
|
137
135
|
const lastStep = subproof.getLastStep(),
|
|
136
|
+
fileContext = this.getFileContext(),
|
|
137
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
138
|
+
generalContext = localContext, ///
|
|
139
|
+
specificContext = context, ///
|
|
138
140
|
lastStepUnified = this.unifyLastStep(lastStep, substitutions, generalContext, specificContext);
|
|
139
141
|
|
|
140
142
|
if (lastStepUnified) {
|
package/src/dom/equality.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import dom from "../dom";
|
|
4
|
+
import equationalUnifier from "../unifier/equantional";
|
|
4
5
|
import EqualityAssignment from "../assignment/equality";
|
|
5
6
|
import VariableAssignment from "../assignment/variable";
|
|
6
7
|
|
|
7
8
|
import { domAssigned } from "../dom";
|
|
8
|
-
import { unifyEquality } from "../utilities/unification";
|
|
9
9
|
|
|
10
10
|
export default domAssigned(class Equality {
|
|
11
11
|
constructor(string, leftTerm, rightTerm) {
|
|
@@ -45,6 +45,15 @@ export default domAssigned(class Equality {
|
|
|
45
45
|
return type;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
getTerms() {
|
|
49
|
+
const terms = [
|
|
50
|
+
this.leftTerm,
|
|
51
|
+
this.rightTerm
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
return terms;
|
|
55
|
+
}
|
|
56
|
+
|
|
48
57
|
isReflexive() {
|
|
49
58
|
const leftTermString = this.leftTerm.getString(),
|
|
50
59
|
rightTermString = this.rightTerm.getString(),
|
|
@@ -54,9 +63,15 @@ export default domAssigned(class Equality {
|
|
|
54
63
|
}
|
|
55
64
|
|
|
56
65
|
isEqual(context) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
let equal = false;
|
|
67
|
+
|
|
68
|
+
const leftTermNode = this.leftTerm.getNode(),
|
|
69
|
+
rightTermNode = this.rightTerm.getNode(),
|
|
70
|
+
termsEquated = equationalUnifier.equateTerms(leftTermNode, rightTermNode, context);
|
|
71
|
+
|
|
72
|
+
if (termsEquated) {
|
|
73
|
+
equal = true;
|
|
74
|
+
}
|
|
60
75
|
|
|
61
76
|
return equal;
|
|
62
77
|
}
|
|
@@ -80,11 +95,15 @@ export default domAssigned(class Equality {
|
|
|
80
95
|
verifiedWhenDerived = this.verifyWhenDerived(context);
|
|
81
96
|
}
|
|
82
97
|
|
|
83
|
-
|
|
98
|
+
if (verifiedWhenStated || verifiedWhenDerived) {
|
|
99
|
+
verified = true;
|
|
100
|
+
}
|
|
84
101
|
}
|
|
85
102
|
|
|
86
103
|
if (verified) {
|
|
87
|
-
|
|
104
|
+
|
|
105
|
+
this.assign(assignments, context);
|
|
106
|
+
|
|
88
107
|
}
|
|
89
108
|
|
|
90
109
|
if (verified) {
|
|
@@ -153,9 +172,7 @@ export default domAssigned(class Equality {
|
|
|
153
172
|
|
|
154
173
|
context.trace(`Verifying the '${equalityString}' derived equality...`);
|
|
155
174
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
verifiedWhenDerived = equal; ///
|
|
175
|
+
verifiedWhenDerived = true; ///
|
|
159
176
|
|
|
160
177
|
if (verifiedWhenDerived) {
|
|
161
178
|
context.debug(`...verified the '${equalityString}' derived equality.`);
|
package/src/dom/judgement.js
CHANGED
|
@@ -50,7 +50,9 @@ export default domAssigned(class Judgement {
|
|
|
50
50
|
verifiedWhenDerived = this.verifyWhenDerived(context);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
if (verifiedWhenStated || verifiedWhenDerived) {
|
|
54
|
+
verified = true;
|
|
55
|
+
}
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
|