occam-verify-cli 0.0.1272 → 0.0.1273

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.
@@ -27,6 +27,9 @@ _export(exports, {
27
27
  metavariableFromStatement: function() {
28
28
  return metavariableFromStatement;
29
29
  },
30
+ propertyAssertionFromStatement: function() {
31
+ return propertyAssertionFromStatement;
32
+ },
30
33
  subproofAssertionFromStatement: function() {
31
34
  return subproofAssertionFromStatement;
32
35
  },
@@ -71,6 +74,11 @@ function definedAssertionFromStatement(statement, context) {
71
74
  var DefinedAssertion = _dom.default.DefinedAssertion, statementNode = statement.getNode(), definedAssertion = DefinedAssertion.fromStatementNode(statementNode, context);
72
75
  return definedAssertion;
73
76
  }
77
+ function propertyAssertionFromStatement(statement, context) {
78
+ context = contextFromStatement(statement, context); ///
79
+ var PropertyAssertion = _dom.default.PropertyAssertion, statementNode = statement.getNode(), propertyAssertion = PropertyAssertion.fromStatementNode(statementNode, context);
80
+ return propertyAssertion;
81
+ }
74
82
  function containedAssertionFromStatement(statement, context) {
75
83
  context = contextFromStatement(statement, context); ///
76
84
  var ContainedAssertion = _dom.default.ContainedAssertion, statementNode = statement.getNode(), containedAssertion = ContainedAssertion.fromStatementNode(statementNode, context);
@@ -92,4 +100,4 @@ function contextFromStatement(statement, context) {
92
100
  return context;
93
101
  }
94
102
 
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21GcmFtZShmcmFtZSwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21GcmFtZShmcmFtZSwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIGZyYW1lTm9kZSA9IGZyYW1lLmdldE5vZGUoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHlGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZG9tLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gZXF1YWxpdHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqdWRnZW1lbnRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBKdWRnZW1lbnQgfSA9IGRvbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGp1ZGdlbWVudCA9IEp1ZGdlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4ganVkZ2VtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBUeXBlQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uID0gVHlwZUFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdHlwZUFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBEZWZpbmVkQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uID0gRGVmaW5lZEFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gZGVmaW5lZEFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnRleHQgPSBjb250ZXh0RnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpOyAvLy9cblxuICBjb25zdCB7IENvbnRhaW5lZEFzc2VydGlvbiB9ID0gZG9tLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gQ29udGFpbmVkQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBjb250YWluZWRBc3NlcnRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gIGNvbnRleHQgPSBjb250ZXh0RnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpOyAvLy9cblxuICBjb25zdCB7IFN1YnByb29mQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBzdWJwcm9vZkFzc2VydGlvbiA9IFN1YnByb29mQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiBzdWJwcm9vZkFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gY29udGV4dEZyb21GcmFtZShmcmFtZSwgY29udGV4dCkge1xuICBjb25zdCBmcmFtZVRva2VucyA9IGZyYW1lLmdldFRva2VucygpLFxuICAgICAgICB0b2tlbnMgPSBmcmFtZVRva2VucywgLy8vXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpO1xuXG4gIGNvbnRleHQgPSBsb2NhbENvbnRleHQ7IC8vL1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5mdW5jdGlvbiBjb250ZXh0RnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50VG9rZW5zID0gc3RhdGVtZW50LmdldFRva2VucygpLFxuICAgICAgICB0b2tlbnMgPSBzdGF0ZW1lbnRUb2tlbnMsIC8vL1xuICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUNvbnRleHRBbmRUb2tlbnMoY29udGV4dCwgdG9rZW5zKTtcblxuICBjb250ZXh0ID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICByZXR1cm4gY29udGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJjb250YWluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwiZGVmaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJlcXVhbGl0eUZyb21TdGF0ZW1lbnQiLCJqdWRnZW1lbnRGcm9tU3RhdGVtZW50IiwibWV0YXZhcmlhYmxlRnJvbUZyYW1lIiwibWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudCIsInN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsInR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwiZnJhbWUiLCJjb250ZXh0IiwiY29udGV4dEZyb21GcmFtZSIsIk1ldGF2YXJpYWJsZSIsImRvbSIsImZyYW1lTm9kZSIsImdldE5vZGUiLCJtZXRhdmFyaWFibGUiLCJmcm9tRnJhbWVOb2RlIiwic3RhdGVtZW50IiwiY29udGV4dEZyb21TdGF0ZW1lbnQiLCJFcXVhbGl0eSIsInN0YXRlbWVudE5vZGUiLCJlcXVhbGl0eSIsImZyb21TdGF0ZW1lbnROb2RlIiwiSnVkZ2VtZW50IiwianVkZ2VtZW50IiwiVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb24iLCJEZWZpbmVkQXNzZXJ0aW9uIiwiZGVmaW5lZEFzc2VydGlvbiIsIkNvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJmcmFtZVRva2VucyIsImdldFRva2VucyIsInRva2VucyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21Db250ZXh0QW5kVG9rZW5zIiwic3RhdGVtZW50VG9rZW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFpRWdCQSwrQkFBK0I7ZUFBL0JBOztJQVZBQyw2QkFBNkI7ZUFBN0JBOztJQXhDQUMscUJBQXFCO2VBQXJCQTs7SUFVQUMsc0JBQXNCO2VBQXRCQTs7SUFwQkFDLHFCQUFxQjtlQUFyQkE7O0lBOEJBQyx5QkFBeUI7ZUFBekJBOztJQXdDQUMsOEJBQThCO2VBQTlCQTs7SUE5QkFDLDBCQUEwQjtlQUExQkE7OzswREEzQ0E7NERBQ1M7Ozs7OztBQUVsQixTQUFTSCxzQkFBc0JJLEtBQUssRUFBRUMsT0FBTztJQUNsREEsVUFBVUMsaUJBQWlCRixPQUFPQyxVQUFVLEdBQUc7SUFFL0MsSUFBTSxBQUFFRSxlQUFpQkMsWUFBRyxDQUFwQkQsY0FDRkUsWUFBWUwsTUFBTU0sT0FBTyxJQUN6QkMsZUFBZUosYUFBYUssYUFBYSxDQUFDSCxXQUFXSjtJQUUzRCxPQUFPTTtBQUNUO0FBRU8sU0FBU2Isc0JBQXNCZSxTQUFTLEVBQUVSLE9BQU87SUFDdERBLFVBQVVTLHFCQUFxQkQsV0FBV1IsVUFBVSxHQUFHO0lBRXZELElBQU0sQUFBRVUsV0FBYVAsWUFBRyxDQUFoQk8sVUFDRkMs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
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbG9jYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21GcmFtZShmcmFtZSwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21GcmFtZShmcmFtZSwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIGZyYW1lTm9kZSA9IGZyYW1lLmdldE5vZGUoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXF1YWxpdHlGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZG9tLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gZXF1YWxpdHk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqdWRnZW1lbnRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBKdWRnZW1lbnQgfSA9IGRvbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIGp1ZGdlbWVudCA9IEp1ZGdlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4ganVkZ2VtZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBUeXBlQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICB0eXBlQXNzZXJ0aW9uID0gVHlwZUFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdHlwZUFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZWRBc3NlcnRpb25Gcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb250ZXh0ID0gY29udGV4dEZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTsgLy8vXG5cbiAgY29uc3QgeyBEZWZpbmVkQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uID0gRGVmaW5lZEFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gZGVmaW5lZEFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnR5QXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgUHJvcGVydHlBc3NlcnRpb24gfSA9IGRvbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gUHJvcGVydHlBc3NlcnRpb24uZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHByb3BlcnR5QXNzZXJ0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgQ29udGFpbmVkQXNzZXJ0aW9uIH0gPSBkb20sXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnQuZ2V0Tm9kZSgpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb24gPSBDb250YWluZWRBc3NlcnRpb24uZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29udGV4dCA9IGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7IC8vL1xuXG4gIGNvbnN0IHsgU3VicHJvb2ZBc3NlcnRpb24gfSA9IGRvbSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiBjb250ZXh0RnJvbUZyYW1lKGZyYW1lLCBjb250ZXh0KSB7XG4gIGNvbnN0IGZyYW1lVG9rZW5zID0gZnJhbWUuZ2V0VG9rZW5zKCksXG4gICAgICAgIHRva2VucyA9IGZyYW1lVG9rZW5zLCAvLy9cbiAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21Db250ZXh0QW5kVG9rZW5zKGNvbnRleHQsIHRva2Vucyk7XG5cbiAgY29udGV4dCA9IGxvY2FsQ29udGV4dDsgLy8vXG5cbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIGNvbnRleHRGcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICBjb25zdCBzdGF0ZW1lbnRUb2tlbnMgPSBzdGF0ZW1lbnQuZ2V0VG9rZW5zKCksXG4gICAgICAgIHRva2VucyA9IHN0YXRlbWVudFRva2VucywgLy8vXG4gICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tQ29udGV4dEFuZFRva2Vucyhjb250ZXh0LCB0b2tlbnMpO1xuXG4gIGNvbnRleHQgPSBsb2NhbENvbnRleHQ7IC8vL1xuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbImNvbnRhaW5lZEFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJkZWZpbmVkQXNzZXJ0aW9uRnJvbVN0YXRlbWVudCIsImVxdWFsaXR5RnJvbVN0YXRlbWVudCIsImp1ZGdlbWVudEZyb21TdGF0ZW1lbnQiLCJtZXRhdmFyaWFibGVGcm9tRnJhbWUiLCJtZXRhdmFyaWFibGVGcm9tU3RhdGVtZW50IiwicHJvcGVydHlBc3NlcnRpb25Gcm9tU3RhdGVtZW50Iiwic3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50IiwidHlwZUFzc2VydGlvbkZyb21TdGF0ZW1lbnQiLCJmcmFtZSIsImNvbnRleHQiLCJjb250ZXh0RnJvbUZyYW1lIiwiTWV0YXZhcmlhYmxlIiwiZG9tIiwiZnJhbWVOb2RlIiwiZ2V0Tm9kZSIsIm1ldGF2YXJpYWJsZSIsImZyb21GcmFtZU5vZGUiLCJzdGF0ZW1lbnQiLCJjb250ZXh0RnJvbVN0YXRlbWVudCIsIkVxdWFsaXR5Iiwic3RhdGVtZW50Tm9kZSIsImVxdWFsaXR5IiwiZnJvbVN0YXRlbWVudE5vZGUiLCJKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbiIsIkRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uIiwiUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsIkNvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZBc3NlcnRpb24iLCJmcmFtZVRva2VucyIsImdldFRva2VucyIsInRva2VucyIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21Db250ZXh0QW5kVG9rZW5zIiwic3RhdGVtZW50VG9rZW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUEyRWdCQSwrQkFBK0I7ZUFBL0JBOztJQXBCQUMsNkJBQTZCO2VBQTdCQTs7SUF4Q0FDLHFCQUFxQjtlQUFyQkE7O0lBVUFDLHNCQUFz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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.1272",
4
+ "version": "0.0.1273",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -99,7 +99,7 @@ export default domAssigned(class ContainedAssertion {
99
99
  });
100
100
 
101
101
  if (termVerified) {
102
- context.trace(`...verified the '${containedAssertionString}' contained assertion's '${termString}' term.`);
102
+ context.debug(`...verified the '${containedAssertionString}' contained assertion's '${termString}' term.`);
103
103
  }
104
104
  }
105
105
 
@@ -122,7 +122,7 @@ export default domAssigned(class ContainedAssertion {
122
122
  frameVerified = this.frame.verify(assignments, stated, context);
123
123
 
124
124
  if (frameVerified) {
125
- context.trace(`...verified the '${containedAssertionString}' contained assertion's '${frameString}' frame.`);
125
+ context.debug(`...verified the '${containedAssertionString}' contained assertion's '${frameString}' frame.`);
126
126
  }
127
127
  }
128
128
 
@@ -145,7 +145,7 @@ export default domAssigned(class ContainedAssertion {
145
145
  statementVerified = this.statement.verify(assignments, stated, context);
146
146
 
147
147
  if (statementVerified) {
148
- context.trace(`...verified the '${containedAssertionString}' contained assertion's '${statementString}' statement.`);
148
+ context.debug(`...verified the '${containedAssertionString}' contained assertion's '${statementString}' statement.`);
149
149
  }
150
150
  }
151
151
 
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ import dom from "../../dom";
4
+
5
+ import { nodeQuery } from "../../utilities/query";
6
+ import { domAssigned } from "../../dom";
7
+
8
+ const propertyNodeQuery = nodeQuery("/propertyAssertion/property"),
9
+ leftTermNodeQuery = nodeQuery("/propertyAssertion/term[0]"),
10
+ rightTermNodeQuery = nodeQuery("/propertyAssertion/term[1]"),
11
+ propertyAssertionNodeQuery = nodeQuery("/statement/propertyAssertion");
12
+
13
+ export default domAssigned(class PropertyAssertion {
14
+ constructor(string, node, tokens, property, leftTerm, rightTerm) {
15
+ this.string = string;
16
+ this.node = node;
17
+ this.tokens = tokens;
18
+ this.property = property;
19
+ this.leftTerm = leftTerm;
20
+ this.rightTerm = rightTerm;
21
+ }
22
+
23
+ getString() {
24
+ return this.string;
25
+ }
26
+
27
+ getNode() {
28
+ return this.node;
29
+ }
30
+
31
+ getTokens() {
32
+ return this.tokens;
33
+ }
34
+
35
+ getProperty() {
36
+ return this.property;
37
+ }
38
+
39
+ getLeftTerm() {
40
+ return this.leftTerm;
41
+ }
42
+
43
+ getRightTerm() {
44
+ return this.rightTerm;
45
+ }
46
+
47
+ verify(assignments, stated, context) {
48
+ let verified = false;
49
+
50
+ const propertyAssertionString = this.string; ///
51
+
52
+ context.trace(`Verifying the '${propertyAssertionString}' property assertion...`);
53
+
54
+ const rightTermVerified = this.verifyRightTerm(assignments, stated, context);
55
+
56
+ if (rightTermVerified) {
57
+ const leftTermVerified = this.verifyLeftTerm(assignments, stated, context);
58
+
59
+ if (leftTermVerified) {
60
+ const propertyVerified = this.verifyProperty(assignments, stated, context);
61
+
62
+ if (propertyVerified) {
63
+ verified = true;
64
+ }
65
+ }
66
+ }
67
+
68
+ if (verified) {
69
+ context.debug(`...verified the '${propertyAssertionString}' property assertion.`);
70
+ }
71
+
72
+ return verified;
73
+ }
74
+
75
+ verifyProperty(assignments, stated, context) {
76
+ let propertyVerified;
77
+
78
+ const propertyString = this.property.getString(),
79
+ propertyAssertionString = this.string; ///
80
+
81
+ context.trace(`Verifying the '${propertyAssertionString}' property assertion's '${propertyString}' property...`);
82
+
83
+ const rightTermType = this.rightTerm.getType(),
84
+ propertyName = this.property.getName(),
85
+ property = rightTermType.findPropertyByPropertyName(propertyName);
86
+
87
+ if (property === null) {
88
+ const rightTermTypeName = rightTermType.getName();
89
+
90
+ context.debug(`The '${propertyName}' property is not a property of the right term's '${rightTermTypeName}' type.`);
91
+ } else {
92
+ const leftTermType = this.leftTerm.getType(),
93
+ propertyType = property.getType(),
94
+ leftTermTypeEqualToOrSubTypeOfPropertyType = leftTermType.isEqualToOrSubTypeOf(propertyType);
95
+
96
+ if (!leftTermTypeEqualToOrSubTypeOfPropertyType) {
97
+ const leftTermTypeName = leftTermType.getName(),
98
+ propertyTypeName = propertyType.getName();
99
+
100
+ context.debug(`The left term's '${leftTermTypeName}' type is not equal to or a sub-type of the '${propertyName}' property's '${propertyTypeName}' type.`);
101
+ } else {
102
+ propertyVerified = true;
103
+ }
104
+ }
105
+
106
+ if (propertyVerified) {
107
+ context.debug(`...verified the '${propertyAssertionString}' property assertion's '${propertyString}' property.`);
108
+ }
109
+
110
+ return propertyVerified;
111
+ }
112
+
113
+ verifyLeftTerm(assignments, stated, context) {
114
+ let leftTermVerified;
115
+
116
+ const leftTermString = this.leftTerm.getString(),
117
+ propertyAssertionString = this.string; ///
118
+
119
+ context.trace(`Verifying the '${propertyAssertionString}' property assertion's '${leftTermString}' left term...`);
120
+
121
+ leftTermVerified = this.leftTerm.verify(context, () => {
122
+ const verifiedAhead = true;
123
+
124
+ return verifiedAhead;
125
+ });
126
+
127
+ if (leftTermVerified) {
128
+ context.debug(`...verified the '${propertyAssertionString}' property assertion's '${leftTermString}' left term.`);
129
+ }
130
+
131
+ return leftTermVerified;
132
+ }
133
+
134
+ verifyRightTerm(assignments, stated, context) {
135
+ let rightTermVerified;
136
+
137
+ const rightTermString = this.rightTerm.getString(),
138
+ propertyAssertionString = this.string; ///
139
+
140
+ context.trace(`Verifying the '${propertyAssertionString}' property assertion's '${rightTermString}' right term...`);
141
+
142
+ rightTermVerified = this.rightTerm.verify(context, () => {
143
+ const verifiedAhead = true;
144
+
145
+ return verifiedAhead;
146
+ });
147
+
148
+ if (rightTermVerified) {
149
+ context.debug(`...verified the '${propertyAssertionString}' property assertion's '${rightTermString}' right term.`);
150
+ }
151
+
152
+ return rightTermVerified;
153
+ }
154
+
155
+ static name = "PropertyAssertion";
156
+
157
+ static fromStatementNode(statementNode, context) {
158
+ let propertyAssertion = null;
159
+
160
+ const propertyAssertionNode = propertyAssertionNodeQuery(statementNode);
161
+
162
+ if (propertyAssertionNode !== null) {
163
+ const { Term, Property } = dom,
164
+ node = propertyAssertionNode, ///
165
+ string = context.nodeAsString(node),
166
+ tokens = context.nodeAsTokens(node),
167
+ propertyNode = propertyNodeQuery(propertyAssertionNode),
168
+ leftTermNode = leftTermNodeQuery(propertyAssertionNode),
169
+ rightTermNode = rightTermNodeQuery(propertyAssertionNode),
170
+ property = Property.fromPropertyNode(propertyNode, context),
171
+ leftTerm = Term.fromTermNode(leftTermNode, context),
172
+ rightTerm = Term.fromTermNode(rightTermNode, context);
173
+
174
+ propertyAssertion = new PropertyAssertion(string, node, tokens, property, leftTerm, rightTerm);
175
+ }
176
+
177
+ return propertyAssertion;
178
+ }
179
+ });
@@ -110,10 +110,21 @@ export default domAssigned(class ComplexTypeDeclaration {
110
110
  if (count > 1) {
111
111
  this.fileContext.debug(`The '${propertyString}' property appears more than once.`);
112
112
  } else {
113
- const propertyType = property.getType(),
114
- propertyTypeVerified = this.verifyPropertyType(propertyType);
113
+ let propertyType;
114
+
115
+ propertyType = property.getType();
116
+
117
+ const propertyTypeVerified = this.verifyPropertyType(propertyType);
115
118
 
116
119
  if (propertyTypeVerified) {
120
+ const propertyTypeName = propertyType.getName();
121
+
122
+ propertyType = this.fileContext.findTypeByTypeName(propertyTypeName);
123
+
124
+ const type = propertyType; ///
125
+
126
+ property.setType(type);
127
+
117
128
  propertyVerified = true;
118
129
  }
119
130
  }
@@ -6,7 +6,7 @@ import { objectType } from "../type";
6
6
  import { domAssigned } from "../../dom";
7
7
 
8
8
  export default domAssigned(class VariableDeclaration {
9
- constructor(fileContext, string, variable) {
9
+ constructor(fileContext, variable) {
10
10
  this.fileContext = fileContext;
11
11
  this.variable = variable;
12
12
  }
@@ -149,7 +149,7 @@ export default domAssigned(class Declaration {
149
149
  }
150
150
 
151
151
  if (verifiedWhenStated) {
152
- context.trace(`...verified the '${declarationString}' stated declaration.`);
152
+ context.debug(`...verified the '${declarationString}' stated declaration.`);
153
153
  }
154
154
 
155
155
  return verifiedWhenStated;
@@ -172,7 +172,7 @@ export default domAssigned(class Declaration {
172
172
  }
173
173
 
174
174
  if (verifiedWhenDerived) {
175
- context.trace(`...verified the '${declarationString}' derived declaration.`);
175
+ context.debug(`...verified the '${declarationString}' derived declaration.`);
176
176
  }
177
177
 
178
178
  return verifiedWhenDerived;
@@ -6,8 +6,7 @@ import { nodeQuery } from "../utilities/query";
6
6
  import { domAssigned } from "../dom";
7
7
  import { typeFromJSON, typeToTypeJSON } from "../utilities/json";
8
8
 
9
- const typeNodeQuery = nodeQuery("/property/type"),
10
- propertyNodeQuery = nodeQuery("/propertyDeclaration/property"),
9
+ const propertyNodeQuery = nodeQuery("/propertyDeclaration/property"),
11
10
  nameTerminalNodeQuery = nodeQuery("/property/@name");
12
11
 
13
12
  export default domAssigned(class Property {
@@ -29,28 +28,16 @@ export default domAssigned(class Property {
29
28
  return this.type;
30
29
  }
31
30
 
31
+ setType(type) {
32
+ this.type = type;
33
+ }
34
+
32
35
  matchPropertyName(propertyName) {
33
36
  const propertyNameMatches = (propertyName === this.name);
34
37
 
35
38
  return propertyNameMatches;
36
39
  }
37
40
 
38
- verify(context) {
39
- let verified;
40
-
41
- const propertyString = this.string; ///
42
-
43
- context.trace(`Verifying the '${propertyString}' property...`);
44
-
45
- debugger
46
-
47
- if (verified) {
48
- context.debug(`...verified the '${propertyString}' property.`);
49
- }
50
-
51
- return verified;
52
- }
53
-
54
41
  toJSON() {
55
42
  const typeJSON = typeToTypeJSON(this.type),
56
43
  name = this.name, ///
@@ -74,11 +61,22 @@ export default domAssigned(class Property {
74
61
  return property;
75
62
  }
76
63
 
64
+ static fromPropertyNode(propertyNode, fileContext) {
65
+ const node = propertyNode, ///
66
+ name = nameFromPropertyNode(propertyNode),
67
+ type = null,
68
+ string = fileContext.nodeAsString(node),
69
+ property = new Property(string, name, type);
70
+
71
+ return property;
72
+ }
73
+
77
74
  static fromPropertyDeclarationNode(propertyDeclarationNode, fileContext) {
78
- const propertyNode = propertyNodeQuery(propertyDeclarationNode),
75
+ const { Type } = dom,
76
+ propertyNode = propertyNodeQuery(propertyDeclarationNode),
79
77
  node = propertyNode, ///
80
78
  name = nameFromPropertyNode(propertyNode),
81
- type = typeFromPropertyNode(propertyNode),
79
+ type = Type.fromPropertyDeclarationNode(propertyDeclarationNode),
82
80
  string = fileContext.nodeAsString(node),
83
81
  property = new Property(string, name, type);
84
82
 
@@ -93,11 +91,3 @@ function nameFromPropertyNode(propertyNode, fileContext) {
93
91
 
94
92
  return name;
95
93
  }
96
-
97
- function typeFromPropertyNode(propertyNode, fileContext) {
98
- const { Type } = dom,
99
- typeNode = typeNodeQuery(propertyNode),
100
- type = Type.fromTypeNode(typeNode);
101
-
102
- return type;
103
- }
package/src/dom/type.js CHANGED
@@ -10,6 +10,7 @@ import { superTypeFromJSON, propertiesFromJSON, superTypeToSuperTypeJSON, proper
10
10
 
11
11
  const typeDeclarationTypeNodeQuery = nodeQuery("/typeDeclaration|complexTypeDeclaration/type[0]"),
12
12
  propertyDeclarationNodesQuery = nodesQuery("/complexTypeDeclaration/propertyDeclaration"),
13
+ propertyDeclarationTypeNodeQuery = nodeQuery("/propertyDeclaration/type"),
13
14
  typeDeclarationSuperTypeNodeQuery = nodeQuery("/typeDeclaration|complexTypeDeclaration/type[1]");
14
15
 
15
16
  class Type {
@@ -118,12 +119,16 @@ class Type {
118
119
  return typeNameMatches;
119
120
  }
120
121
 
121
- matchTypeNode(typeNode) {
122
- const typeName = typeNameFromTypeNode(typeNode),
123
- typeNameMatches = this.matchTypeName(typeName),
124
- typeNodeMatches = typeNameMatches; ///
122
+ findPropertyByPropertyName(propertyName) {
123
+ const property = this.properties.find((property) => {
124
+ const propertyNameMatches = property.matchPropertyName(propertyName);
125
125
 
126
- return typeNodeMatches;
126
+ if (propertyNameMatches) {
127
+ return true;
128
+ }
129
+ }) || null;
130
+
131
+ return property;
127
132
  }
128
133
 
129
134
  toJSON() {
@@ -183,6 +188,27 @@ class Type {
183
188
  return type;
184
189
  }
185
190
 
191
+ static fromPropertyDeclarationNode(propertyDeclarationNode, fileContext) {
192
+ let type;
193
+
194
+ const propertyDeclarationTypeNode = propertyDeclarationTypeNodeQuery(propertyDeclarationNode);
195
+
196
+ if (propertyDeclarationTypeNode === null) {
197
+ type = objectType;
198
+ } else {
199
+ const typeNode = propertyDeclarationTypeNode, ///
200
+ typeName = typeNameFromTypeNode(typeNode),
201
+ name = typeName, ///
202
+ string = name, ///
203
+ superType = null,
204
+ properties = null;
205
+
206
+ type = new Type(string, name, superType, properties);
207
+ }
208
+
209
+ return type;
210
+ }
211
+
186
212
  static fromComplexTypeDeclarationNode(complexTypeDeclarationNode, fileContext) {
187
213
  const properties = propertiesFromComplexTypeDeclarationNode(complexTypeDeclarationNode, fileContext),
188
214
  superType = superTypeFromComplexTypeDeclarationNode(complexTypeDeclarationNode, fileContext),
package/src/index.js CHANGED
@@ -38,6 +38,7 @@ import TypeAssertion from "./dom/assertion/type";
38
38
  import TypeDeclaration from "./dom/declaration/type";
39
39
  import DefinedAssertion from "./dom/assertion/defined";
40
40
  import SubproofAssertion from "./dom/assertion/subproof";
41
+ import PropertyAssertion from "./dom/assertion/property";
41
42
  import ContainedAssertion from "./dom/assertion/contained";
42
43
  import VariableDeclaration from "./dom/declaration/variable";
43
44
  import BracketedCombinator from "./dom/combinator/bracketed";
@@ -7,9 +7,39 @@ import { equalityFromStatement,
7
7
  metavariableFromStatement,
8
8
  typeAssertionFromStatement,
9
9
  definedAssertionFromStatement,
10
+ propertyAssertionFromStatement,
10
11
  containedAssertionFromStatement,
11
12
  subproofAssertionFromStatement } from "../../utilities/verification";
12
13
 
14
+ function unifyWithBracketedCombinator(statement, assignments, stated, context) {
15
+ stated = true; ///
16
+
17
+ assignments = null; ///
18
+
19
+ const { BracketedCombinator } = dom,
20
+ bracketedCombinator = BracketedCombinator.fromNothing(),
21
+ unifiedWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
22
+
23
+ return unifiedWithBracketedCombinator;
24
+ }
25
+
26
+ function unifyWithCombinators(statement, assignments, stated, context) {
27
+ stated = true; ///
28
+
29
+ assignments = null; ///
30
+
31
+ const combinators = context.getCombinators(),
32
+ unifiedWithCombinators = combinators.some((combinator) => {
33
+ const unifiedWithCombinator = combinator.unifyStatement(statement, assignments, stated, context);
34
+
35
+ if (unifiedWithCombinator) {
36
+ return true;
37
+ }
38
+ });
39
+
40
+ return unifiedWithCombinators;
41
+ }
42
+
13
43
  function verifyAsMetavariable(statement, assignments, stated, context) {
14
44
  let verifiedAsMetavariable = false;
15
45
 
@@ -120,6 +150,28 @@ function verifyAsDefinedAssertion(statement, assignments, stated, context) {
120
150
  return verifiedAsDefinedAssertion;
121
151
  }
122
152
 
153
+ function verifyAsPropertyAssertion(statement, assignments, stated, context) {
154
+ let verifiedAsPropertyAssertion = false;
155
+
156
+ const propertyAssertion = propertyAssertionFromStatement(statement, context);
157
+
158
+ if (propertyAssertion !== null) {
159
+ const statementString = statement.getString();
160
+
161
+ context.trace(`Verifying the '${statementString}' statement as a property assertion...`);
162
+
163
+ const propertyAssertionVerified = propertyAssertion.verify(assignments, stated, context);
164
+
165
+ verifiedAsPropertyAssertion = propertyAssertionVerified; ///
166
+
167
+ if (verifiedAsPropertyAssertion) {
168
+ context.debug(`...verified the '${statementString}' statement as a property assertion.`);
169
+ }
170
+ }
171
+
172
+ return verifiedAsPropertyAssertion;
173
+ }
174
+
123
175
  function verifyAsContainedAssertion(statement, assignments, stated, context) {
124
176
  let verifiedAsContainedAssertion = false;
125
177
 
@@ -164,45 +216,17 @@ function verifyAsSubproofAssertion(statement, assignments, stated, context) {
164
216
  return verifiedAsSubproofAssertion;
165
217
  }
166
218
 
167
- function unifyWithBracketedCombinator(statement, assignments, stated, context) {
168
- stated = true; ///
169
-
170
- assignments = null; ///
171
-
172
- const { BracketedCombinator } = dom,
173
- bracketedCombinator = BracketedCombinator.fromNothing(),
174
- unifiedWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
175
-
176
- return unifiedWithBracketedCombinator;
177
- }
178
-
179
- function unifyWithCombinators(statement, assignments, stated, context) {
180
- stated = true; ///
181
-
182
- assignments = null; ///
183
-
184
- const combinators = context.getCombinators(),
185
- unifiedWithCombinators = combinators.some((combinator) => {
186
- const unifiedWithCombinator = combinator.unifyStatement(statement, assignments, stated, context);
187
-
188
- if (unifiedWithCombinator) {
189
- return true;
190
- }
191
- });
192
-
193
- return unifiedWithCombinators;
194
- }
195
-
196
219
  const verifyMixins = [
220
+ unifyWithBracketedCombinator,
221
+ unifyWithCombinators,
197
222
  verifyAsMetavariable,
198
223
  verifyAsEquality,
199
224
  verifyAsJudgement,
200
225
  verifyAsTypeAssertion,
201
226
  verifyAsDefinedAssertion,
202
227
  verifyAsContainedAssertion,
203
- verifyAsSubproofAssertion,
204
- unifyWithBracketedCombinator,
205
- unifyWithCombinators
228
+ verifyAsPropertyAssertion,
229
+ verifyAsSubproofAssertion
206
230
  ];
207
231
 
208
232
  export default verifyMixins;
@@ -63,6 +63,16 @@ export function definedAssertionFromStatement(statement, context) {
63
63
  return definedAssertion;
64
64
  }
65
65
 
66
+ export function propertyAssertionFromStatement(statement, context) {
67
+ context = contextFromStatement(statement, context); ///
68
+
69
+ const { PropertyAssertion } = dom,
70
+ statementNode = statement.getNode(),
71
+ propertyAssertion = PropertyAssertion.fromStatementNode(statementNode, context);
72
+
73
+ return propertyAssertion;
74
+ }
75
+
66
76
  export function containedAssertionFromStatement(statement, context) {
67
77
  context = contextFromStatement(statement, context); ///
68
78