eyeling 1.24.0 → 1.24.1

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.
Files changed (154) hide show
  1. package/README.md +4 -4
  2. package/package.json +1 -1
  3. package/see/README.md +10 -11
  4. package/see/examples/age.js +10 -10
  5. package/see/examples/annotation.js +10 -10
  6. package/see/examples/backward.js +10 -10
  7. package/see/examples/backward_recursion.js +10 -10
  8. package/see/examples/bayes_diagnosis.js +10 -10
  9. package/see/examples/bayes_therapy.js +10 -10
  10. package/see/examples/bmi.js +10 -10
  11. package/see/examples/builtin_coverage.js +10 -10
  12. package/see/examples/collection.js +10 -10
  13. package/see/examples/complex.js +10 -10
  14. package/see/examples/complex_matrix_stability.js +10 -10
  15. package/see/examples/composition_of_injective_functions_is_injective.js +10 -10
  16. package/see/examples/control_system.js +10 -10
  17. package/see/examples/crypto_builtins_tests.js +10 -10
  18. package/see/examples/delfour.js +10 -10
  19. package/see/examples/digital_product_passport.js +10 -10
  20. package/see/examples/dijkstra.js +10 -10
  21. package/see/examples/dijkstra_risk_path.js +10 -10
  22. package/see/examples/doc/age.md +1 -1
  23. package/see/examples/doc/annotation.md +1 -1
  24. package/see/examples/doc/backward.md +1 -1
  25. package/see/examples/doc/backward_recursion.md +1 -1
  26. package/see/examples/doc/bayes_diagnosis.md +1 -1
  27. package/see/examples/doc/bayes_therapy.md +1 -1
  28. package/see/examples/doc/bmi.md +1 -1
  29. package/see/examples/doc/builtin_coverage.md +1 -1
  30. package/see/examples/doc/collection.md +1 -1
  31. package/see/examples/doc/complex.md +1 -1
  32. package/see/examples/doc/complex_matrix_stability.md +1 -1
  33. package/see/examples/doc/composition_of_injective_functions_is_injective.md +1 -1
  34. package/see/examples/doc/control_system.md +1 -1
  35. package/see/examples/doc/crypto_builtins_tests.md +1 -1
  36. package/see/examples/doc/delfour.md +1 -1
  37. package/see/examples/doc/digital_product_passport.md +1 -1
  38. package/see/examples/doc/dijkstra.md +1 -1
  39. package/see/examples/doc/dijkstra_risk_path.md +1 -1
  40. package/see/examples/doc/dog.md +1 -1
  41. package/see/examples/doc/eco_route_insight.md +1 -1
  42. package/see/examples/doc/equals.md +1 -1
  43. package/see/examples/doc/equivalence_classes_overlap_implies_same_class.md +1 -1
  44. package/see/examples/doc/euler_identity.md +1 -1
  45. package/see/examples/doc/ev_roundtrip_planner.md +1 -1
  46. package/see/examples/doc/existential_rule.md +1 -1
  47. package/see/examples/doc/expression_eval.md +1 -1
  48. package/see/examples/doc/family_cousins.md +1 -1
  49. package/see/examples/doc/fastpow.md +1 -1
  50. package/see/examples/doc/fibonacci.md +1 -1
  51. package/see/examples/doc/french_cities.md +1 -1
  52. package/see/examples/doc/fundamental_theorem_arithmetic.md +1 -1
  53. package/see/examples/doc/genetic_knapsack_selection.md +1 -1
  54. package/see/examples/doc/goldbach_1000.md +1 -1
  55. package/see/examples/doc/good_cobbler.md +1 -1
  56. package/see/examples/doc/gps.md +1 -1
  57. package/see/examples/doc/gray_code_counter.md +1 -1
  58. package/see/examples/doc/greatest_lower_bound_uniqueness.md +1 -1
  59. package/see/examples/doc/group_inverse_uniqueness.md +1 -1
  60. package/see/examples/doc/hadamard_approx.md +1 -1
  61. package/see/examples/doc/hanoi.md +1 -1
  62. package/see/examples/doc/odrl_dpv_risk_ranked.md +1 -1
  63. package/see/examples/doc/path_discovery.md +1 -1
  64. package/see/examples/doc/rc_discharge_envelope.md +1 -1
  65. package/see/examples/doc/rdf_message_flow.md +1 -1
  66. package/see/examples/doc/rdf_messages.md +1 -1
  67. package/see/examples/doc/school_placement_audit.md +1 -1
  68. package/see/examples/doc/smoke_arithmetic.md +1 -1
  69. package/see/examples/doc/socrates.md +1 -1
  70. package/see/examples/doc/wind_turbine.md +1 -1
  71. package/see/examples/doc/witch.md +1 -1
  72. package/see/examples/dog.js +10 -10
  73. package/see/examples/eco_route_insight.js +10 -10
  74. package/see/examples/equals.js +10 -10
  75. package/see/examples/equivalence_classes_overlap_implies_same_class.js +10 -10
  76. package/see/examples/euler_identity.js +10 -10
  77. package/see/examples/ev_roundtrip_planner.js +10 -10
  78. package/see/examples/existential_rule.js +10 -10
  79. package/see/examples/expression_eval.js +10 -10
  80. package/see/examples/family_cousins.js +10 -10
  81. package/see/examples/fastpow.js +10 -10
  82. package/see/examples/fibonacci.js +10 -10
  83. package/see/examples/french_cities.js +10 -10
  84. package/see/examples/fundamental_theorem_arithmetic.js +10 -10
  85. package/see/examples/genetic_knapsack_selection.js +10 -10
  86. package/see/examples/goldbach_1000.js +10 -10
  87. package/see/examples/good_cobbler.js +10 -10
  88. package/see/examples/gps.js +10 -10
  89. package/see/examples/gray_code_counter.js +10 -10
  90. package/see/examples/greatest_lower_bound_uniqueness.js +10 -10
  91. package/see/examples/group_inverse_uniqueness.js +10 -10
  92. package/see/examples/hadamard_approx.js +10 -10
  93. package/see/examples/hanoi.js +10 -10
  94. package/see/examples/odrl_dpv_risk_ranked.js +10 -10
  95. package/see/examples/output/age.md +3 -3
  96. package/see/examples/output/annotation.md +4 -4
  97. package/see/examples/output/backward.md +3 -3
  98. package/see/examples/output/backward_recursion.md +3 -3
  99. package/see/examples/output/bayes_diagnosis.md +1 -1
  100. package/see/examples/output/bayes_therapy.md +1 -1
  101. package/see/examples/output/bmi.md +1 -1
  102. package/see/examples/output/builtin_coverage.md +3 -3
  103. package/see/examples/output/collection.md +3 -3
  104. package/see/examples/output/complex.md +4 -4
  105. package/see/examples/output/complex_matrix_stability.md +1 -1
  106. package/see/examples/output/composition_of_injective_functions_is_injective.md +3 -3
  107. package/see/examples/output/control_system.md +3 -3
  108. package/see/examples/output/crypto_builtins_tests.md +3 -3
  109. package/see/examples/output/delfour.md +1 -1
  110. package/see/examples/output/digital_product_passport.md +1 -1
  111. package/see/examples/output/dijkstra.md +3 -3
  112. package/see/examples/output/dijkstra_risk_path.md +1 -1
  113. package/see/examples/output/dog.md +3 -3
  114. package/see/examples/output/eco_route_insight.md +1 -1
  115. package/see/examples/output/equals.md +3 -3
  116. package/see/examples/output/equivalence_classes_overlap_implies_same_class.md +3 -3
  117. package/see/examples/output/euler_identity.md +3 -3
  118. package/see/examples/output/ev_roundtrip_planner.md +1 -1
  119. package/see/examples/output/existential_rule.md +3 -3
  120. package/see/examples/output/expression_eval.md +3 -3
  121. package/see/examples/output/family_cousins.md +3 -3
  122. package/see/examples/output/fastpow.md +1 -1
  123. package/see/examples/output/fibonacci.md +1 -1
  124. package/see/examples/output/french_cities.md +3 -3
  125. package/see/examples/output/fundamental_theorem_arithmetic.md +1 -1
  126. package/see/examples/output/genetic_knapsack_selection.md +1 -1
  127. package/see/examples/output/goldbach_1000.md +1 -1
  128. package/see/examples/output/good_cobbler.md +4 -4
  129. package/see/examples/output/gps.md +1 -1
  130. package/see/examples/output/gray_code_counter.md +1 -1
  131. package/see/examples/output/greatest_lower_bound_uniqueness.md +3 -3
  132. package/see/examples/output/group_inverse_uniqueness.md +3 -3
  133. package/see/examples/output/hadamard_approx.md +3 -3
  134. package/see/examples/output/hanoi.md +3 -3
  135. package/see/examples/output/odrl_dpv_risk_ranked.md +3 -3
  136. package/see/examples/output/path_discovery.md +3 -3
  137. package/see/examples/output/rc_discharge_envelope.md +1 -1
  138. package/see/examples/output/rdf_message_flow.md +1 -1
  139. package/see/examples/output/rdf_messages.md +1 -1
  140. package/see/examples/output/school_placement_audit.md +1 -1
  141. package/see/examples/output/smoke_arithmetic.md +1 -1
  142. package/see/examples/output/socrates.md +3 -3
  143. package/see/examples/output/wind_turbine.md +1 -1
  144. package/see/examples/output/witch.md +3 -3
  145. package/see/examples/path_discovery.js +10 -10
  146. package/see/examples/rc_discharge_envelope.js +10 -10
  147. package/see/examples/rdf_message_flow.js +10 -10
  148. package/see/examples/rdf_messages.js +10 -10
  149. package/see/examples/school_placement_audit.js +10 -10
  150. package/see/examples/smoke_arithmetic.js +10 -10
  151. package/see/examples/socrates.js +10 -10
  152. package/see/examples/wind_turbine.js +10 -10
  153. package/see/examples/witch.js +10 -10
  154. package/see/see.js +381 -93
@@ -1040,19 +1040,19 @@ function renderStructuredOutput({ title, graph, queries = [], rules = [], initia
1040
1040
  const lines = [];
1041
1041
  lines.push('# ' + title);
1042
1042
  lines.push('');
1043
- lines.push('## Insight');
1043
+ lines.push('## Entailment');
1044
1044
  if (mode === 'query') {
1045
1045
  lines.push('The compiled query selected ' + selected.length + ' fact(s) after the rule closure was computed.');
1046
1046
  } else if (mode === 'formula') {
1047
- lines.push('The derivation produced ' + selected.length + ' formula-valued conclusion(s).');
1047
+ lines.push('The derivation produced ' + selected.length + ' formula-valued entailment(s).');
1048
1048
  } else {
1049
1049
  lines.push('The derivation produced ' + derived.length + ' new fact(s) from ' + initialFacts.length + ' stated fact(s).');
1050
1050
  }
1051
- if (keyFact) lines.push('Main conclusion: **' + factSentence(keyFact) + '**');
1051
+ if (keyFact) lines.push('Main entailment: **' + factSentence(keyFact) + '**');
1052
1052
  const bullets = selected.slice(-6).reverse();
1053
1053
  if (bullets.length) {
1054
1054
  lines.push('');
1055
- lines.push('Selected conclusions:');
1055
+ lines.push('Selected entailments:');
1056
1056
  for (const fact of bullets) lines.push('- ' + codeFact(fact));
1057
1057
  }
1058
1058
  lines.push('');
@@ -1114,15 +1114,15 @@ function dedupeExplanationHeadings(text) {
1114
1114
  function normalizePublicReport(markdown, title) {
1115
1115
  let text = String(markdown || '').trimEnd();
1116
1116
  if (!/^\s*#\s+/m.test(text)) text = '# ' + title + '\n\n' + text;
1117
- if (!/^##\s+Insight\s*$/mi.test(text)) {
1118
- text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Insight\n');
1117
+ if (!/^##\s+Entailment\s*$/mi.test(text)) {
1118
+ text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Entailment\n');
1119
1119
  }
1120
1120
  if (!/^##\s+Explanation\s*$/mi.test(text)) {
1121
1121
  text += '\n\n## Explanation\nNo additional explanation was provided by the generated output.';
1122
1122
  }
1123
1123
  text = text.replace(/^##\s+([^\n]+?)\s*$/gm, (line, heading) => {
1124
1124
  const normalized = heading.trim().toLowerCase();
1125
- if (normalized === 'insight' || normalized === 'explanation') return '## ' + (normalized === 'insight' ? 'Insight' : 'Explanation');
1125
+ if (normalized === 'insight' || normalized === 'conclusion' || normalized === 'entailment' || normalized === 'explanation') return '## ' + (normalized === 'explanation' ? 'Explanation' : 'Entailment');
1126
1126
  return '**' + heading.trim() + '**';
1127
1127
  });
1128
1128
  text = dedupeExplanationHeadings(text);
@@ -1131,13 +1131,13 @@ function normalizePublicReport(markdown, title) {
1131
1131
  function markdownize(raw, title) {
1132
1132
  let text = String(raw || '');
1133
1133
  text = text
1134
- .replace(/===\s*Answer\s*===/g, '## Insight')
1134
+ .replace(/===\s*Answer\s*===/g, '## Entailment')
1135
1135
  .replace(/===\s*Reason\s+Why\s*===/gi, '## Explanation')
1136
1136
  .replace(/===\s*Explanation\s*===/gi, '## Explanation')
1137
1137
  .replace(/===\s*([^=]+?)\s*===/g, (_, h) => '**' + h.trim() + '**');
1138
1138
  text = text.replace(/^C(\d+)\s+OK\s*-\s*/gm, 'C$1: ');
1139
1139
  text = dedupeExplanationHeadings(text);
1140
- if (!text.trim()) text = '## Insight\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1140
+ if (!text.trim()) text = '## Entailment\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1141
1141
  return normalizePublicReport(text, title);
1142
1142
  }
1143
1143
  function authoredSupportAppendix(graph, queries, rules, initialFacts, trace) {
@@ -3049,7 +3049,7 @@ const QUERIES = [
3049
3049
  ]
3050
3050
  }
3051
3051
  ];
3052
- const DOC_MARKDOWN = "# Delfour\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the Delfour insight-economy example. A private phone\ncondition is desensitized into a scoped low-sugar insight; the scanner may use\nit for shopping assistance, but not for marketing.\n\n## Compilation summary\n\n- Example name: `delfour`\n- Input facts emitted: 61\n- Forward rules compiled: 16\n- Backward predicate rules compiled: 0\n- Fuses compiled: 3\n- Predicate count: 62\n\n## Built-ins used\n\n- `crypto:sha256`\n- `log:notEqualTo`\n- `log:notIncludes`\n- `log:outputString`\n- `math:greaterThan`\n- `math:notEqualTo`\n- `math:notGreaterThan`\n- `math:notLessThan`\n- `string:format`\n- `string:notMatches`\n\n## Runtime model\n\nThe generated `examples/delfour.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/delfour.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/delfour.trig` or `examples/input/delfour.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/delfour.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
3052
+ const DOC_MARKDOWN = "# Delfour\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the Delfour insight-economy example. A private phone\ncondition is desensitized into a scoped low-sugar insight; the scanner may use\nit for shopping assistance, but not for marketing.\n\n## Compilation summary\n\n- Example name: `delfour`\n- Input facts emitted: 61\n- Forward rules compiled: 16\n- Backward predicate rules compiled: 0\n- Fuses compiled: 3\n- Predicate count: 62\n\n## Built-ins used\n\n- `crypto:sha256`\n- `log:notEqualTo`\n- `log:notIncludes`\n- `log:outputString`\n- `math:greaterThan`\n- `math:notEqualTo`\n- `math:notGreaterThan`\n- `math:notLessThan`\n- `string:format`\n- `string:notMatches`\n\n## Runtime model\n\nThe generated `examples/delfour.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/delfour.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/delfour.trig` or `examples/input/delfour.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/delfour.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
3053
3053
  function seeMetadata(data) { return (data && data.__see) || {}; }
3054
3054
  function trustedDerivation(data) { const meta = seeMetadata(data); const facts = data && Array.isArray(data.facts) ? data.facts : []; const expectedFacts = EXPECTED_INPUT_FACTS || Number(meta.InputFacts || 0); if (meta.SourceSHA256 && meta.SourceSHA256 !== "250631cb3de8addff7037b54789b63b2ea034eb6b579c61a9feca542efd584c1") throw new Error('input evidence does not match the N3 source compiled into this example'); const result = saturate(facts, RULES); const rawOutput = renderRawOutput(result.graph, QUERIES, RULES, facts); fail('Compiled N3 derivation failed', { 'input evidence metadata is present and matches compiled source': meta.SourceSHA256 === "250631cb3de8addff7037b54789b63b2ea034eb6b579c61a9feca542efd584c1", 'input evidence facts were loaded': expectedFacts > 0 ? facts.length === expectedFacts : facts.length >= 0, 'compiled rules were loaded': RULES.length === 19, 'compiled query directives were loaded': QUERIES.length === 1, 'a derivation fixpoint was reached': result.graph.facts.length >= facts.length, 'query or output facts were produced': rawOutput.length > 0 }); return { ...result, rawOutput, inputFacts: facts }; }
3055
3055
  function snapshotMarkdown(markdown) { return markdown.split(/\n/).map((line) => line ? line + ' \n' : '\n').join(''); }
@@ -1040,19 +1040,19 @@ function renderStructuredOutput({ title, graph, queries = [], rules = [], initia
1040
1040
  const lines = [];
1041
1041
  lines.push('# ' + title);
1042
1042
  lines.push('');
1043
- lines.push('## Insight');
1043
+ lines.push('## Entailment');
1044
1044
  if (mode === 'query') {
1045
1045
  lines.push('The compiled query selected ' + selected.length + ' fact(s) after the rule closure was computed.');
1046
1046
  } else if (mode === 'formula') {
1047
- lines.push('The derivation produced ' + selected.length + ' formula-valued conclusion(s).');
1047
+ lines.push('The derivation produced ' + selected.length + ' formula-valued entailment(s).');
1048
1048
  } else {
1049
1049
  lines.push('The derivation produced ' + derived.length + ' new fact(s) from ' + initialFacts.length + ' stated fact(s).');
1050
1050
  }
1051
- if (keyFact) lines.push('Main conclusion: **' + factSentence(keyFact) + '**');
1051
+ if (keyFact) lines.push('Main entailment: **' + factSentence(keyFact) + '**');
1052
1052
  const bullets = selected.slice(-6).reverse();
1053
1053
  if (bullets.length) {
1054
1054
  lines.push('');
1055
- lines.push('Selected conclusions:');
1055
+ lines.push('Selected entailments:');
1056
1056
  for (const fact of bullets) lines.push('- ' + codeFact(fact));
1057
1057
  }
1058
1058
  lines.push('');
@@ -1114,15 +1114,15 @@ function dedupeExplanationHeadings(text) {
1114
1114
  function normalizePublicReport(markdown, title) {
1115
1115
  let text = String(markdown || '').trimEnd();
1116
1116
  if (!/^\s*#\s+/m.test(text)) text = '# ' + title + '\n\n' + text;
1117
- if (!/^##\s+Insight\s*$/mi.test(text)) {
1118
- text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Insight\n');
1117
+ if (!/^##\s+Entailment\s*$/mi.test(text)) {
1118
+ text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Entailment\n');
1119
1119
  }
1120
1120
  if (!/^##\s+Explanation\s*$/mi.test(text)) {
1121
1121
  text += '\n\n## Explanation\nNo additional explanation was provided by the generated output.';
1122
1122
  }
1123
1123
  text = text.replace(/^##\s+([^\n]+?)\s*$/gm, (line, heading) => {
1124
1124
  const normalized = heading.trim().toLowerCase();
1125
- if (normalized === 'insight' || normalized === 'explanation') return '## ' + (normalized === 'insight' ? 'Insight' : 'Explanation');
1125
+ if (normalized === 'insight' || normalized === 'conclusion' || normalized === 'entailment' || normalized === 'explanation') return '## ' + (normalized === 'explanation' ? 'Explanation' : 'Entailment');
1126
1126
  return '**' + heading.trim() + '**';
1127
1127
  });
1128
1128
  text = dedupeExplanationHeadings(text);
@@ -1131,13 +1131,13 @@ function normalizePublicReport(markdown, title) {
1131
1131
  function markdownize(raw, title) {
1132
1132
  let text = String(raw || '');
1133
1133
  text = text
1134
- .replace(/===\s*Answer\s*===/g, '## Insight')
1134
+ .replace(/===\s*Answer\s*===/g, '## Entailment')
1135
1135
  .replace(/===\s*Reason\s+Why\s*===/gi, '## Explanation')
1136
1136
  .replace(/===\s*Explanation\s*===/gi, '## Explanation')
1137
1137
  .replace(/===\s*([^=]+?)\s*===/g, (_, h) => '**' + h.trim() + '**');
1138
1138
  text = text.replace(/^C(\d+)\s+OK\s*-\s*/gm, 'C$1: ');
1139
1139
  text = dedupeExplanationHeadings(text);
1140
- if (!text.trim()) text = '## Insight\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1140
+ if (!text.trim()) text = '## Entailment\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1141
1141
  return normalizePublicReport(text, title);
1142
1142
  }
1143
1143
  function authoredSupportAppendix(graph, queries, rules, initialFacts, trace) {
@@ -2731,7 +2731,7 @@ const QUERIES = [
2731
2731
  ]
2732
2732
  }
2733
2733
  ];
2734
- const DOC_MARKDOWN = "# Digital Product Passport\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the smartphone Digital Product Passport example. The\nrules fold component mass, recycled content, critical raw materials, public\ndocuments, lifecycle footprint, and access-policy validations into a public PASS.\n\n## Compilation summary\n\n- Example name: `digital_product_passport`\n- Input facts emitted: 90\n- Forward rules compiled: 12\n- Backward predicate rules compiled: 0\n- Fuses compiled: 2\n- Predicate count: 53\n\n## Built-ins used\n\n- `log:notEqualTo`\n- `log:outputString`\n- `math:greaterThan`\n- `math:integerQuotient`\n- `math:notGreaterThan`\n- `math:product`\n- `math:sum`\n- `string:format`\n- `string:notGreaterThan`\n\n## Runtime model\n\nThe generated `examples/digital_product_passport.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/digital_product_passport.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/digital-product-passport.trig` or `examples/input/digital_product_passport.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/digital_product_passport.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
2734
+ const DOC_MARKDOWN = "# Digital Product Passport\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the smartphone Digital Product Passport example. The\nrules fold component mass, recycled content, critical raw materials, public\ndocuments, lifecycle footprint, and access-policy validations into a public PASS.\n\n## Compilation summary\n\n- Example name: `digital_product_passport`\n- Input facts emitted: 90\n- Forward rules compiled: 12\n- Backward predicate rules compiled: 0\n- Fuses compiled: 2\n- Predicate count: 53\n\n## Built-ins used\n\n- `log:notEqualTo`\n- `log:outputString`\n- `math:greaterThan`\n- `math:integerQuotient`\n- `math:notGreaterThan`\n- `math:product`\n- `math:sum`\n- `string:format`\n- `string:notGreaterThan`\n\n## Runtime model\n\nThe generated `examples/digital_product_passport.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/digital_product_passport.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/digital-product-passport.trig` or `examples/input/digital_product_passport.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/digital_product_passport.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
2735
2735
  function seeMetadata(data) { return (data && data.__see) || {}; }
2736
2736
  function trustedDerivation(data) { const meta = seeMetadata(data); const facts = data && Array.isArray(data.facts) ? data.facts : []; const expectedFacts = EXPECTED_INPUT_FACTS || Number(meta.InputFacts || 0); if (meta.SourceSHA256 && meta.SourceSHA256 !== "502e99d8e51a930eba50cb2411263cb6db5d98d63fe3dd48254612d993a9ab95") throw new Error('input evidence does not match the N3 source compiled into this example'); const result = saturate(facts, RULES); const rawOutput = renderRawOutput(result.graph, QUERIES, RULES, facts); fail('Compiled N3 derivation failed', { 'input evidence metadata is present and matches compiled source': meta.SourceSHA256 === "502e99d8e51a930eba50cb2411263cb6db5d98d63fe3dd48254612d993a9ab95", 'input evidence facts were loaded': expectedFacts > 0 ? facts.length === expectedFacts : facts.length >= 0, 'compiled rules were loaded': RULES.length === 14, 'compiled query directives were loaded': QUERIES.length === 1, 'a derivation fixpoint was reached': result.graph.facts.length >= facts.length, 'query or output facts were produced': rawOutput.length > 0 }); return { ...result, rawOutput, inputFacts: facts }; }
2737
2737
  function snapshotMarkdown(markdown) { return markdown.split(/\n/).map((line) => line ? line + ' \n' : '\n').join(''); }
@@ -1040,19 +1040,19 @@ function renderStructuredOutput({ title, graph, queries = [], rules = [], initia
1040
1040
  const lines = [];
1041
1041
  lines.push('# ' + title);
1042
1042
  lines.push('');
1043
- lines.push('## Insight');
1043
+ lines.push('## Entailment');
1044
1044
  if (mode === 'query') {
1045
1045
  lines.push('The compiled query selected ' + selected.length + ' fact(s) after the rule closure was computed.');
1046
1046
  } else if (mode === 'formula') {
1047
- lines.push('The derivation produced ' + selected.length + ' formula-valued conclusion(s).');
1047
+ lines.push('The derivation produced ' + selected.length + ' formula-valued entailment(s).');
1048
1048
  } else {
1049
1049
  lines.push('The derivation produced ' + derived.length + ' new fact(s) from ' + initialFacts.length + ' stated fact(s).');
1050
1050
  }
1051
- if (keyFact) lines.push('Main conclusion: **' + factSentence(keyFact) + '**');
1051
+ if (keyFact) lines.push('Main entailment: **' + factSentence(keyFact) + '**');
1052
1052
  const bullets = selected.slice(-6).reverse();
1053
1053
  if (bullets.length) {
1054
1054
  lines.push('');
1055
- lines.push('Selected conclusions:');
1055
+ lines.push('Selected entailments:');
1056
1056
  for (const fact of bullets) lines.push('- ' + codeFact(fact));
1057
1057
  }
1058
1058
  lines.push('');
@@ -1114,15 +1114,15 @@ function dedupeExplanationHeadings(text) {
1114
1114
  function normalizePublicReport(markdown, title) {
1115
1115
  let text = String(markdown || '').trimEnd();
1116
1116
  if (!/^\s*#\s+/m.test(text)) text = '# ' + title + '\n\n' + text;
1117
- if (!/^##\s+Insight\s*$/mi.test(text)) {
1118
- text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Insight\n');
1117
+ if (!/^##\s+Entailment\s*$/mi.test(text)) {
1118
+ text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Entailment\n');
1119
1119
  }
1120
1120
  if (!/^##\s+Explanation\s*$/mi.test(text)) {
1121
1121
  text += '\n\n## Explanation\nNo additional explanation was provided by the generated output.';
1122
1122
  }
1123
1123
  text = text.replace(/^##\s+([^\n]+?)\s*$/gm, (line, heading) => {
1124
1124
  const normalized = heading.trim().toLowerCase();
1125
- if (normalized === 'insight' || normalized === 'explanation') return '## ' + (normalized === 'insight' ? 'Insight' : 'Explanation');
1125
+ if (normalized === 'insight' || normalized === 'conclusion' || normalized === 'entailment' || normalized === 'explanation') return '## ' + (normalized === 'explanation' ? 'Explanation' : 'Entailment');
1126
1126
  return '**' + heading.trim() + '**';
1127
1127
  });
1128
1128
  text = dedupeExplanationHeadings(text);
@@ -1131,13 +1131,13 @@ function normalizePublicReport(markdown, title) {
1131
1131
  function markdownize(raw, title) {
1132
1132
  let text = String(raw || '');
1133
1133
  text = text
1134
- .replace(/===\s*Answer\s*===/g, '## Insight')
1134
+ .replace(/===\s*Answer\s*===/g, '## Entailment')
1135
1135
  .replace(/===\s*Reason\s+Why\s*===/gi, '## Explanation')
1136
1136
  .replace(/===\s*Explanation\s*===/gi, '## Explanation')
1137
1137
  .replace(/===\s*([^=]+?)\s*===/g, (_, h) => '**' + h.trim() + '**');
1138
1138
  text = text.replace(/^C(\d+)\s+OK\s*-\s*/gm, 'C$1: ');
1139
1139
  text = dedupeExplanationHeadings(text);
1140
- if (!text.trim()) text = '## Insight\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1140
+ if (!text.trim()) text = '## Entailment\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1141
1141
  return normalizePublicReport(text, title);
1142
1142
  }
1143
1143
  function authoredSupportAppendix(graph, queries, rules, initialFacts, trace) {
@@ -1945,7 +1945,7 @@ const RULES = [
1945
1945
  }
1946
1946
  ];
1947
1947
  const QUERIES = [];
1948
- const DOC_MARKDOWN = "# Dijkstra's algorithm to find the shortest path\n\nGenerated by `see.js` from a Notation3 source file.\n\n## Compilation summary\n\n- Example name: `dijkstra`\n- Input facts emitted: 9\n- Forward rules compiled: 2\n- Backward predicate rules compiled: 3\n- Fuses compiled: 0\n- Predicate count: 9\n\n## Built-ins used\n\n- `list:append`\n- `list:firstRest`\n- `list:reverse`\n- `list:sort`\n- `log:collectAllIn`\n\n## Runtime model\n\nThe generated `examples/dijkstra.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/dijkstra.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/dijkstra.trig` or `examples/input/dijkstra.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/dijkstra.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
1948
+ const DOC_MARKDOWN = "# Dijkstra's algorithm to find the shortest path\n\nGenerated by `see.js` from a Notation3 source file.\n\n## Compilation summary\n\n- Example name: `dijkstra`\n- Input facts emitted: 9\n- Forward rules compiled: 2\n- Backward predicate rules compiled: 3\n- Fuses compiled: 0\n- Predicate count: 9\n\n## Built-ins used\n\n- `list:append`\n- `list:firstRest`\n- `list:reverse`\n- `list:sort`\n- `log:collectAllIn`\n\n## Runtime model\n\nThe generated `examples/dijkstra.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/dijkstra.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/dijkstra.trig` or `examples/input/dijkstra.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/dijkstra.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
1949
1949
  function seeMetadata(data) { return (data && data.__see) || {}; }
1950
1950
  function trustedDerivation(data) { const meta = seeMetadata(data); const facts = data && Array.isArray(data.facts) ? data.facts : []; const expectedFacts = EXPECTED_INPUT_FACTS || Number(meta.InputFacts || 0); if (meta.SourceSHA256 && meta.SourceSHA256 !== "e877c1cfea99078228bd424f6e55761e56cc54bc1e64b21540231620cc3620ab") throw new Error('input evidence does not match the N3 source compiled into this example'); const result = saturate(facts, RULES); const rawOutput = renderRawOutput(result.graph, QUERIES, RULES, facts); fail('Compiled N3 derivation failed', { 'input evidence metadata is present and matches compiled source': meta.SourceSHA256 === "e877c1cfea99078228bd424f6e55761e56cc54bc1e64b21540231620cc3620ab", 'input evidence facts were loaded': expectedFacts > 0 ? facts.length === expectedFacts : facts.length >= 0, 'compiled rules were loaded': RULES.length === 5, 'compiled query directives were loaded': QUERIES.length === 0, 'a derivation fixpoint was reached': result.graph.facts.length >= facts.length, 'query or output facts were produced': rawOutput.length > 0 }); return { ...result, rawOutput, inputFacts: facts }; }
1951
1951
  function snapshotMarkdown(markdown) { return markdown.split(/\n/).map((line) => line ? line + ' \n' : '\n').join(''); }
@@ -1040,19 +1040,19 @@ function renderStructuredOutput({ title, graph, queries = [], rules = [], initia
1040
1040
  const lines = [];
1041
1041
  lines.push('# ' + title);
1042
1042
  lines.push('');
1043
- lines.push('## Insight');
1043
+ lines.push('## Entailment');
1044
1044
  if (mode === 'query') {
1045
1045
  lines.push('The compiled query selected ' + selected.length + ' fact(s) after the rule closure was computed.');
1046
1046
  } else if (mode === 'formula') {
1047
- lines.push('The derivation produced ' + selected.length + ' formula-valued conclusion(s).');
1047
+ lines.push('The derivation produced ' + selected.length + ' formula-valued entailment(s).');
1048
1048
  } else {
1049
1049
  lines.push('The derivation produced ' + derived.length + ' new fact(s) from ' + initialFacts.length + ' stated fact(s).');
1050
1050
  }
1051
- if (keyFact) lines.push('Main conclusion: **' + factSentence(keyFact) + '**');
1051
+ if (keyFact) lines.push('Main entailment: **' + factSentence(keyFact) + '**');
1052
1052
  const bullets = selected.slice(-6).reverse();
1053
1053
  if (bullets.length) {
1054
1054
  lines.push('');
1055
- lines.push('Selected conclusions:');
1055
+ lines.push('Selected entailments:');
1056
1056
  for (const fact of bullets) lines.push('- ' + codeFact(fact));
1057
1057
  }
1058
1058
  lines.push('');
@@ -1114,15 +1114,15 @@ function dedupeExplanationHeadings(text) {
1114
1114
  function normalizePublicReport(markdown, title) {
1115
1115
  let text = String(markdown || '').trimEnd();
1116
1116
  if (!/^\s*#\s+/m.test(text)) text = '# ' + title + '\n\n' + text;
1117
- if (!/^##\s+Insight\s*$/mi.test(text)) {
1118
- text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Insight\n');
1117
+ if (!/^##\s+Entailment\s*$/mi.test(text)) {
1118
+ text = text.replace(/^(#\s+[^\n]+\n*)/, '$1\n## Entailment\n');
1119
1119
  }
1120
1120
  if (!/^##\s+Explanation\s*$/mi.test(text)) {
1121
1121
  text += '\n\n## Explanation\nNo additional explanation was provided by the generated output.';
1122
1122
  }
1123
1123
  text = text.replace(/^##\s+([^\n]+?)\s*$/gm, (line, heading) => {
1124
1124
  const normalized = heading.trim().toLowerCase();
1125
- if (normalized === 'insight' || normalized === 'explanation') return '## ' + (normalized === 'insight' ? 'Insight' : 'Explanation');
1125
+ if (normalized === 'insight' || normalized === 'conclusion' || normalized === 'entailment' || normalized === 'explanation') return '## ' + (normalized === 'explanation' ? 'Explanation' : 'Entailment');
1126
1126
  return '**' + heading.trim() + '**';
1127
1127
  });
1128
1128
  text = dedupeExplanationHeadings(text);
@@ -1131,13 +1131,13 @@ function normalizePublicReport(markdown, title) {
1131
1131
  function markdownize(raw, title) {
1132
1132
  let text = String(raw || '');
1133
1133
  text = text
1134
- .replace(/===\s*Answer\s*===/g, '## Insight')
1134
+ .replace(/===\s*Answer\s*===/g, '## Entailment')
1135
1135
  .replace(/===\s*Reason\s+Why\s*===/gi, '## Explanation')
1136
1136
  .replace(/===\s*Explanation\s*===/gi, '## Explanation')
1137
1137
  .replace(/===\s*([^=]+?)\s*===/g, (_, h) => '**' + h.trim() + '**');
1138
1138
  text = text.replace(/^C(\d+)\s+OK\s*-\s*/gm, 'C$1: ');
1139
1139
  text = dedupeExplanationHeadings(text);
1140
- if (!text.trim()) text = '## Insight\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1140
+ if (!text.trim()) text = '## Entailment\nNo log:outputString facts were derived.\n\n## Explanation\nThe compiled derivation did not produce authored report text.';
1141
1141
  return normalizePublicReport(text, title);
1142
1142
  }
1143
1143
  function authoredSupportAppendix(graph, queries, rules, initialFacts, trace) {
@@ -1749,7 +1749,7 @@ const QUERIES = [
1749
1749
  ]
1750
1750
  }
1751
1751
  ];
1752
- const DOC_MARKDOWN = "# Dijkstra Risk Path\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the risk-adjusted route example. The original JSON\ninput is preserved as the data-input sidecar; this source compiles the\nexecutable derivation and report.\n\n## Compilation summary\n\n- Example name: `dijkstra_risk_path`\n- Input facts emitted: 21\n- Forward rules compiled: 3\n- Backward predicate rules compiled: 0\n- Fuses compiled: 0\n- Predicate count: 17\n\n## Built-ins used\n\n- `log:outputString`\n- `math:lessThan`\n- `string:format`\n\n## Runtime model\n\nThe generated `examples/dijkstra_risk_path.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/dijkstra_risk_path.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/dijkstra-risk-path.trig` or `examples/input/dijkstra_risk_path.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/dijkstra_risk_path.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
1752
+ const DOC_MARKDOWN = "# Dijkstra Risk Path\n\nGenerated by `see.js` from a Notation3 source file.\n\nN3-compiled version of the risk-adjusted route example. The original JSON\ninput is preserved as the data-input sidecar; this source compiles the\nexecutable derivation and report.\n\n## Compilation summary\n\n- Example name: `dijkstra_risk_path`\n- Input facts emitted: 21\n- Forward rules compiled: 3\n- Backward predicate rules compiled: 0\n- Fuses compiled: 0\n- Predicate count: 17\n\n## Built-ins used\n\n- `log:outputString`\n- `math:lessThan`\n- `string:format`\n\n## Runtime model\n\nThe generated `examples/dijkstra_risk_path.js` is a specialized JavaScript derivation program. For ordinary sources, `see.js` emits the source facts as `examples/input/dijkstra_risk_path.trig`. For rules-only sources, generation can reuse an existing external evidence file such as `examples/input/dijkstra-risk-path.trig` or `examples/input/dijkstra_risk_path.trig`. The runner reads that TriG evidence directly and performs a local fixpoint derivation; it does not parse the program source or call an external reasoner.\n\n## Output model\n\nRunning `node examples/dijkstra_risk_path.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.\n";
1753
1753
  function seeMetadata(data) { return (data && data.__see) || {}; }
1754
1754
  function trustedDerivation(data) { const meta = seeMetadata(data); const facts = data && Array.isArray(data.facts) ? data.facts : []; const expectedFacts = EXPECTED_INPUT_FACTS || Number(meta.InputFacts || 0); if (meta.SourceSHA256 && meta.SourceSHA256 !== "a11f23a58252e557817c5d26cabdfee5ce8c5c08a40a54ab680eaa8960c88937") throw new Error('input evidence does not match the N3 source compiled into this example'); const result = saturate(facts, RULES); const rawOutput = renderRawOutput(result.graph, QUERIES, RULES, facts); fail('Compiled N3 derivation failed', { 'input evidence metadata is present and matches compiled source': meta.SourceSHA256 === "a11f23a58252e557817c5d26cabdfee5ce8c5c08a40a54ab680eaa8960c88937", 'input evidence facts were loaded': expectedFacts > 0 ? facts.length === expectedFacts : facts.length >= 0, 'compiled rules were loaded': RULES.length === 3, 'compiled query directives were loaded': QUERIES.length === 1, 'a derivation fixpoint was reached': result.graph.facts.length >= facts.length, 'query or output facts were produced': rawOutput.length > 0 }); return { ...result, rawOutput, inputFacts: facts }; }
1755
1755
  function snapshotMarkdown(markdown) { return markdown.split(/\n/).map((line) => line ? line + ' \n' : '\n').join(''); }
@@ -24,4 +24,4 @@ The generated `examples/age.js` is a specialized JavaScript derivation program.
24
24
 
25
25
  ## Output model
26
26
 
27
- Running `node examples/age.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
27
+ Running `node examples/age.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/annotation.js` is a specialized JavaScript derivation pr
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/annotation.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/annotation.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -23,4 +23,4 @@ The generated `examples/backward.js` is a specialized JavaScript derivation prog
23
23
 
24
24
  ## Output model
25
25
 
26
- Running `node examples/backward.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
26
+ Running `node examples/backward.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -23,4 +23,4 @@ The generated `examples/backward_recursion.js` is a specialized JavaScript deriv
23
23
 
24
24
  ## Output model
25
25
 
26
- Running `node examples/backward_recursion.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
26
+ Running `node examples/backward_recursion.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -38,4 +38,4 @@ The generated `examples/bayes_diagnosis.js` is a specialized JavaScript derivati
38
38
 
39
39
  ## Output model
40
40
 
41
- Running `node examples/bayes_diagnosis.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
41
+ Running `node examples/bayes_diagnosis.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -37,4 +37,4 @@ The generated `examples/bayes_therapy.js` is a specialized JavaScript derivation
37
37
 
38
38
  ## Output model
39
39
 
40
- Running `node examples/bayes_therapy.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
40
+ Running `node examples/bayes_therapy.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -35,4 +35,4 @@ The generated `examples/bmi.js` is a specialized JavaScript derivation program.
35
35
 
36
36
  ## Output model
37
37
 
38
- Running `node examples/bmi.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
38
+ Running `node examples/bmi.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -50,4 +50,4 @@ The generated `examples/builtin_coverage.js` is a specialized JavaScript derivat
50
50
 
51
51
  ## Output model
52
52
 
53
- Running `node examples/builtin_coverage.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
53
+ Running `node examples/builtin_coverage.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/collection.js` is a specialized JavaScript derivation pr
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/collection.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/collection.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -35,4 +35,4 @@ The generated `examples/complex.js` is a specialized JavaScript derivation progr
35
35
 
36
36
  ## Output model
37
37
 
38
- Running `node examples/complex.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
38
+ Running `node examples/complex.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -32,4 +32,4 @@ The generated `examples/complex_matrix_stability.js` is a specialized JavaScript
32
32
 
33
33
  ## Output model
34
34
 
35
- Running `node examples/complex_matrix_stability.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
35
+ Running `node examples/complex_matrix_stability.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/composition_of_injective_functions_is_injective.js` is a
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/composition_of_injective_functions_is_injective.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/composition_of_injective_functions_is_injective.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -29,4 +29,4 @@ The generated `examples/control_system.js` is a specialized JavaScript derivatio
29
29
 
30
30
  ## Output model
31
31
 
32
- Running `node examples/control_system.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
32
+ Running `node examples/control_system.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -24,4 +24,4 @@ The generated `examples/crypto_builtins_tests.js` is a specialized JavaScript de
24
24
 
25
25
  ## Output model
26
26
 
27
- Running `node examples/crypto_builtins_tests.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
27
+ Running `node examples/crypto_builtins_tests.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -34,4 +34,4 @@ The generated `examples/delfour.js` is a specialized JavaScript derivation progr
34
34
 
35
35
  ## Output model
36
36
 
37
- Running `node examples/delfour.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
37
+ Running `node examples/delfour.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -33,4 +33,4 @@ The generated `examples/digital_product_passport.js` is a specialized JavaScript
33
33
 
34
34
  ## Output model
35
35
 
36
- Running `node examples/digital_product_passport.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
36
+ Running `node examples/digital_product_passport.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -25,4 +25,4 @@ The generated `examples/dijkstra.js` is a specialized JavaScript derivation prog
25
25
 
26
26
  ## Output model
27
27
 
28
- Running `node examples/dijkstra.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
28
+ Running `node examples/dijkstra.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -27,4 +27,4 @@ The generated `examples/dijkstra_risk_path.js` is a specialized JavaScript deriv
27
27
 
28
28
  ## Output model
29
29
 
30
- Running `node examples/dijkstra_risk_path.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
30
+ Running `node examples/dijkstra_risk_path.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -25,4 +25,4 @@ The generated `examples/dog.js` is a specialized JavaScript derivation program.
25
25
 
26
26
  ## Output model
27
27
 
28
- Running `node examples/dog.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
28
+ Running `node examples/dog.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -30,4 +30,4 @@ The generated `examples/eco_route_insight.js` is a specialized JavaScript deriva
30
30
 
31
31
  ## Output model
32
32
 
33
- Running `node examples/eco_route_insight.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
33
+ Running `node examples/eco_route_insight.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -23,4 +23,4 @@ The generated `examples/equals.js` is a specialized JavaScript derivation progra
23
23
 
24
24
  ## Output model
25
25
 
26
- Running `node examples/equals.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
26
+ Running `node examples/equals.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/equivalence_classes_overlap_implies_same_class.js` is a
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/equivalence_classes_overlap_implies_same_class.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/equivalence_classes_overlap_implies_same_class.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -36,4 +36,4 @@ The generated `examples/euler_identity.js` is a specialized JavaScript derivatio
36
36
 
37
37
  ## Output model
38
38
 
39
- Running `node examples/euler_identity.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
39
+ Running `node examples/euler_identity.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -29,4 +29,4 @@ The generated `examples/ev_roundtrip_planner.js` is a specialized JavaScript der
29
29
 
30
30
  ## Output model
31
31
 
32
- Running `node examples/ev_roundtrip_planner.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
32
+ Running `node examples/ev_roundtrip_planner.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/existential_rule.js` is a specialized JavaScript derivat
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/existential_rule.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/existential_rule.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -23,4 +23,4 @@ The generated `examples/expression_eval.js` is a specialized JavaScript derivati
23
23
 
24
24
  ## Output model
25
25
 
26
- Running `node examples/expression_eval.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
26
+ Running `node examples/expression_eval.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/family_cousins.js` is a specialized JavaScript derivatio
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/family_cousins.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/family_cousins.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -26,4 +26,4 @@ The generated `examples/fastpow.js` is a specialized JavaScript derivation progr
26
26
 
27
27
  ## Output model
28
28
 
29
- Running `node examples/fastpow.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
29
+ Running `node examples/fastpow.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -25,4 +25,4 @@ The generated `examples/fibonacci.js` is a specialized JavaScript derivation pro
25
25
 
26
26
  ## Output model
27
27
 
28
- Running `node examples/fibonacci.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
28
+ Running `node examples/fibonacci.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -25,4 +25,4 @@ The generated `examples/french_cities.js` is a specialized JavaScript derivation
25
25
 
26
26
  ## Output model
27
27
 
28
- Running `node examples/french_cities.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
28
+ Running `node examples/french_cities.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -33,4 +33,4 @@ The generated `examples/fundamental_theorem_arithmetic.js` is a specialized Java
33
33
 
34
34
  ## Output model
35
35
 
36
- Running `node examples/fundamental_theorem_arithmetic.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
36
+ Running `node examples/fundamental_theorem_arithmetic.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -26,4 +26,4 @@ The generated `examples/genetic_knapsack_selection.js` is a specialized JavaScri
26
26
 
27
27
  ## Output model
28
28
 
29
- Running `node examples/genetic_knapsack_selection.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
29
+ Running `node examples/genetic_knapsack_selection.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -28,4 +28,4 @@ The generated `examples/goldbach_1000.js` is a specialized JavaScript derivation
28
28
 
29
29
  ## Output model
30
30
 
31
- Running `node examples/goldbach_1000.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
31
+ Running `node examples/goldbach_1000.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -24,4 +24,4 @@ The generated `examples/good_cobbler.js` is a specialized JavaScript derivation
24
24
 
25
25
  ## Output model
26
26
 
27
- Running `node examples/good_cobbler.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
27
+ Running `node examples/good_cobbler.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -32,4 +32,4 @@ The generated `examples/gps.js` is a specialized JavaScript derivation program.
32
32
 
33
33
  ## Output model
34
34
 
35
- Running `node examples/gps.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
35
+ Running `node examples/gps.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -28,4 +28,4 @@ The generated `examples/gray_code_counter.js` is a specialized JavaScript deriva
28
28
 
29
29
  ## Output model
30
30
 
31
- Running `node examples/gray_code_counter.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
31
+ Running `node examples/gray_code_counter.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/greatest_lower_bound_uniqueness.js` is a specialized Jav
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/greatest_lower_bound_uniqueness.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/greatest_lower_bound_uniqueness.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
@@ -21,4 +21,4 @@ The generated `examples/group_inverse_uniqueness.js` is a specialized JavaScript
21
21
 
22
22
  ## Output model
23
23
 
24
- Running `node examples/group_inverse_uniqueness.js` produces a SEE-style Markdown report with an **Insight** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.
24
+ Running `node examples/group_inverse_uniqueness.js` produces a SEE-style Markdown report with an **Entailment** section, an **Explanation** section, and a **Formal TriG Output** section containing the selected derived/query facts.