eyelang 1.3.8 → 1.4.0

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 (219) hide show
  1. package/README.md +19 -14
  2. package/SPEC.md +4 -4
  3. package/conformance/expected/core/001_fact_query.out +0 -8
  4. package/conformance/expected/core/002_rule_recursion.out +0 -41
  5. package/conformance/expected/core/003_terms_and_readback.out +0 -104
  6. package/conformance/expected/core/004_conjunction_and_parentheses.out +0 -25
  7. package/conformance/expected/core/005_list_deconstruction.out +0 -32
  8. package/conformance/expected/core/006_comma_formula_data.out +0 -15
  9. package/conformance/expected/core/007_anonymous_variables.out +0 -19
  10. package/conformance/expected/core/008_graphic_atoms.out +0 -24
  11. package/conformance/expected/core/009_comments_and_whitespace.out +0 -30
  12. package/conformance/expected/core/010_variable_scope_and_reuse.out +0 -52
  13. package/conformance/expected/core/011_predicate_arity.out +0 -30
  14. package/conformance/expected/core/012_nested_compound_unification.out +0 -30
  15. package/conformance/expected/core/013_multiple_clauses_order.out +0 -44
  16. package/conformance/expected/core/014_failure_filters_answers.out +0 -19
  17. package/conformance/expected/core/015_improper_list_unification.out +0 -45
  18. package/conformance/expected/core/016_zero_arity_compound.out +0 -15
  19. package/conformance/expected/core/017_three_step_recursion.out +0 -99
  20. package/conformance/expected/core/018_quoted_atom_readback.out +0 -45
  21. package/conformance/expected/core/019_parenthesized_three_conjuncts.out +0 -36
  22. package/conformance/expected/core/020_nested_list_terms.out +0 -30
  23. package/conformance/expected/extension/001_default_derived_output.out +0 -56
  24. package/conformance/expected/extension/002_materialize_focus.out +0 -22
  25. package/conformance/expected/extension/003_arithmetic_and_comparison.out +0 -148
  26. package/conformance/expected/extension/004_strings_and_atoms.out +0 -58
  27. package/conformance/expected/extension/005_lists_aggregation_ordering.out +0 -135
  28. package/conformance/expected/extension/006_formula_terms.out +0 -76
  29. package/conformance/expected/extension/007_negation_once_generators.out +0 -40
  30. package/conformance/expected/extension/008_equality_and_inequality.out +0 -58
  31. package/conformance/expected/extension/009_list_relations.out +0 -73
  32. package/conformance/expected/extension/010_append_splits.out +0 -45
  33. package/conformance/expected/extension/011_matching_and_comparison.out +0 -70
  34. package/conformance/expected/extension/012_memoize_declaration.out +0 -41
  35. package/conformance/expected/extension/013_numeric_functions.out +0 -105
  36. package/conformance/expected/extension/014_between_enumeration.out +0 -45
  37. package/conformance/expected/extension/015_smallest_divisor.out +0 -15
  38. package/conformance/expected/extension/016_negation_filter.out +0 -38
  39. package/conformance/expected/extension/017_once_user_predicate.out +0 -21
  40. package/conformance/expected/extension/018_findall_user_goal.out +0 -15
  41. package/conformance/expected/extension/019_sort_deduplicates_atoms.out +0 -15
  42. package/conformance/expected/extension/020_append_bound_prefix_suffix.out +0 -30
  43. package/conformance/expected/extension/021_nth0_index_generation.out +0 -15
  44. package/conformance/expected/extension/022_set_nth0_edges.out +0 -30
  45. package/conformance/expected/extension/023_select_duplicate_occurrences.out +0 -30
  46. package/conformance/expected/extension/024_not_member_filter.out +0 -19
  47. package/conformance/expected/extension/025_is_list_filter.out +0 -19
  48. package/conformance/expected/extension/026_nested_formula_terms.out +0 -114
  49. package/conformance/expected/extension/027_materialize_excludes_source_fact.out +0 -14
  50. package/conformance/expected/extension/028_numeric_and_lexical_comparison.out +0 -42
  51. package/conformance/expected/extension/029_string_matching_filters.out +0 -38
  52. package/conformance/expected/extension/030_string_and_atom_concat.out +0 -30
  53. package/conformance/expected/extension/031_countall_empty_and_nonempty.out +0 -18
  54. package/conformance/expected/extension/032_sumall_numeric_template.out +0 -8
  55. package/conformance/expected/extension/033_aggregate_min_template.out +0 -8
  56. package/conformance/expected/extension/034_aggregate_max_compound_key.out +0 -8
  57. package/examples/output/access-control-policy.pl +0 -156
  58. package/examples/output/ackermann.pl +0 -1240
  59. package/examples/output/age.pl +0 -69
  60. package/examples/output/aliases-and-namespaces.pl +0 -73
  61. package/examples/output/alignment-demo.pl +0 -862
  62. package/examples/output/allen-interval-calculus.pl +0 -9169
  63. package/examples/output/ancestor.pl +0 -134
  64. package/examples/output/animal.pl +0 -64
  65. package/examples/output/annotation.pl +0 -76
  66. package/examples/output/backward.pl +0 -21
  67. package/examples/output/basic-monadic.pl +0 -22770
  68. package/examples/output/bayes-diagnosis.pl +0 -195
  69. package/examples/output/bayes-therapy.pl +0 -34873
  70. package/examples/output/beam-deflection.pl +0 -222
  71. package/examples/output/blocks-world-planning.pl +0 -1339
  72. package/examples/output/bmi.pl +0 -1903
  73. package/examples/output/braking-safety-worlds.pl +0 -2452
  74. package/examples/output/buck-converter-design.pl +0 -663
  75. package/examples/output/cache-performance.pl +0 -306
  76. package/examples/output/canary-release.pl +0 -167
  77. package/examples/output/cat-koko.pl +0 -83
  78. package/examples/output/clinical-trial-screening.pl +0 -380
  79. package/examples/output/collatz-1000.pl +0 -19000
  80. package/examples/output/combinatorics-findall-sort.pl +0 -56
  81. package/examples/output/competitive-enzyme-kinetics.pl +0 -563
  82. package/examples/output/complex-matrix-stability.pl +0 -250
  83. package/examples/output/complex.pl +0 -653
  84. package/examples/output/composition-of-injective-functions-is-injective.pl +0 -256
  85. package/examples/output/context-association.pl +0 -75
  86. package/examples/output/control-system.pl +0 -328
  87. package/examples/output/cryptarithmetic-send-more-money.pl +0 -168
  88. package/examples/output/cyclic-path.pl +0 -504
  89. package/examples/output/d3-group.pl +0 -56
  90. package/examples/output/dairy-energy-balance.pl +0 -1034
  91. package/examples/output/data-negotiation.pl +0 -75
  92. package/examples/output/deep-taxonomy-10.pl +0 -1235
  93. package/examples/output/deep-taxonomy-100.pl +0 -1235
  94. package/examples/output/deep-taxonomy-1000.pl +0 -1235
  95. package/examples/output/deep-taxonomy-10000.pl +0 -2915
  96. package/examples/output/deep-taxonomy-100000.pl +0 -20240
  97. package/examples/output/delfour.pl +0 -2829
  98. package/examples/output/dense-hamiltonian-cycle.pl +0 -207
  99. package/examples/output/deontic-logic.pl +0 -105
  100. package/examples/output/derived-rule.pl +0 -41
  101. package/examples/output/diamond-property.pl +0 -303
  102. package/examples/output/dijkstra-findall-sort.pl +0 -484
  103. package/examples/output/dijkstra-risk-path.pl +0 -4841
  104. package/examples/output/dijkstra.pl +0 -1336
  105. package/examples/output/dining-philosophers.pl +0 -21646
  106. package/examples/output/dog.pl +0 -30
  107. package/examples/output/drone-corridor-planner.pl +0 -2466
  108. package/examples/output/easter-computus.pl +0 -5690
  109. package/examples/output/electrical-rc-filter.pl +0 -102
  110. package/examples/output/epidemic-policy.pl +0 -760
  111. package/examples/output/equivalence-classes-overlap-implies-same-class.pl +0 -1080
  112. package/examples/output/eulerian-path.pl +0 -383
  113. package/examples/output/ev-range-worlds.pl +0 -2294
  114. package/examples/output/exact-cover-sudoku.pl +0 -396
  115. package/examples/output/existential-rule.pl +0 -38
  116. package/examples/output/exoplanet-validation-worlds.pl +0 -1904
  117. package/examples/output/expression-eval.pl +0 -104
  118. package/examples/output/family-cousins.pl +0 -3852
  119. package/examples/output/fastpow.pl +0 -1064
  120. package/examples/output/fft8-numeric.pl +0 -2556
  121. package/examples/output/fibonacci.pl +0 -2060
  122. package/examples/output/field-nitrogen-balance.pl +0 -1452
  123. package/examples/output/floating-point.pl +0 -151
  124. package/examples/output/four-color-map.pl +0 -191
  125. package/examples/output/fundamental-theorem-arithmetic.pl +0 -1610
  126. package/examples/output/gcd-bezout-identity.pl +0 -1842
  127. package/examples/output/gd-step-certified.pl +0 -32354
  128. package/examples/output/gdpr-compliance.pl +0 -193
  129. package/examples/output/goldbach-1000.pl +0 -17490
  130. package/examples/output/good-cobbler.pl +0 -15
  131. package/examples/output/gps.pl +0 -4166
  132. package/examples/output/graph-reachability.pl +0 -148
  133. package/examples/output/gray-code-counter.pl +0 -835
  134. package/examples/output/greatest-lower-bound-uniqueness.pl +0 -148
  135. package/examples/output/group-inverse-uniqueness.pl +0 -82
  136. package/examples/output/hamiltonian-cycle.pl +0 -102
  137. package/examples/output/hamiltonian-path.pl +0 -14157
  138. package/examples/output/hamming-code.pl +0 -2665
  139. package/examples/output/hanoi.pl +0 -184
  140. package/examples/output/heat-loss.pl +0 -223
  141. package/examples/output/heron-theorem.pl +0 -253
  142. package/examples/output/ideal-gas-law.pl +0 -148
  143. package/examples/output/illegitimate-reasoning.pl +0 -530
  144. package/examples/output/kaprekar.pl +0 -208
  145. package/examples/output/law-of-cosines.pl +0 -165
  146. package/examples/output/least-squares-regression.pl +0 -1447
  147. package/examples/output/list-collection.pl +0 -49
  148. package/examples/output/lldm.pl +0 -17298
  149. package/examples/output/manufacturing-quality-control.pl +0 -562
  150. package/examples/output/matrix.pl +0 -206
  151. package/examples/output/microgrid-dispatch.pl +0 -787
  152. package/examples/output/monkey-bananas.pl +0 -575
  153. package/examples/output/n-queens.pl +0 -2046
  154. package/examples/output/network-sla.pl +0 -282
  155. package/examples/output/newton-raphson.pl +0 -756
  156. package/examples/output/nixon-diamond.pl +0 -176
  157. package/examples/output/odrl-dpv-healthcare-risk-ranked.pl +0 -6148
  158. package/examples/output/odrl-dpv-risk-ranked.pl +0 -12961
  159. package/examples/output/orbital-transfer-design.pl +0 -961
  160. package/examples/output/path-discovery.pl +0 -333
  161. package/examples/output/peano-arithmetic.pl +0 -1432
  162. package/examples/output/peasant.pl +0 -190
  163. package/examples/output/pendulum-period.pl +0 -271
  164. package/examples/output/polynomial.pl +0 -7952
  165. package/examples/output/project-portfolio-optimization.pl +0 -93
  166. package/examples/output/proof-contrapositive.pl +0 -75
  167. package/examples/output/quadratic-formula.pl +0 -454
  168. package/examples/output/quine-mccluskey.pl +0 -188
  169. package/examples/output/radioactive-decay.pl +0 -299
  170. package/examples/output/sat-dpll.pl +0 -121
  171. package/examples/output/security-incident-correlation.pl +0 -267
  172. package/examples/output/service-impact.pl +0 -457
  173. package/examples/output/sieve.pl +0 -19
  174. package/examples/output/skolem-functions.pl +0 -264
  175. package/examples/output/socket-age.pl +0 -31
  176. package/examples/output/socket-family.pl +0 -56
  177. package/examples/output/socrates.pl +0 -36
  178. package/examples/output/statistics-summary.pl +0 -741
  179. package/examples/output/sudoku.pl +0 -38
  180. package/examples/output/superdense-coding.pl +0 -476
  181. package/examples/output/traveling-salesman.pl +0 -284
  182. package/examples/output/turing.pl +0 -2144
  183. package/examples/output/vector-similarity.pl +0 -421
  184. package/examples/output/witch.pl +0 -209
  185. package/examples/output/wolf-goat-cabbage.pl +0 -900
  186. package/examples/output/zebra.pl +0 -401
  187. package/examples/proof/age.pl +71 -0
  188. package/examples/proof/aliases-and-namespaces.pl +78 -0
  189. package/examples/proof/ancestor.pl +140 -0
  190. package/examples/proof/animal.pl +68 -0
  191. package/examples/proof/annotation.pl +80 -0
  192. package/examples/proof/backward.pl +22 -0
  193. package/examples/proof/cat-koko.pl +86 -0
  194. package/examples/proof/data-negotiation.pl +76 -0
  195. package/examples/proof/derived-rule.pl +43 -0
  196. package/examples/proof/dog.pl +31 -0
  197. package/examples/proof/electrical-rc-filter.pl +105 -0
  198. package/examples/proof/existential-rule.pl +40 -0
  199. package/examples/proof/floating-point.pl +160 -0
  200. package/examples/proof/good-cobbler.pl +16 -0
  201. package/examples/proof/group-inverse-uniqueness.pl +84 -0
  202. package/examples/proof/list-collection.pl +52 -0
  203. package/examples/proof/proof-contrapositive.pl +78 -0
  204. package/examples/proof/socket-age.pl +32 -0
  205. package/examples/proof/socket-family.pl +59 -0
  206. package/examples/proof/socrates.pl +38 -0
  207. package/examples/socket-age.pl +4 -4
  208. package/examples/socket-family.pl +4 -4
  209. package/package.json +1 -1
  210. package/playground-worker.mjs +4 -4
  211. package/playground.html +15 -15
  212. package/src/cli.js +10 -10
  213. package/src/index.js +3 -2
  214. package/src/parser.js +130 -1
  215. package/src/program.js +33 -27
  216. package/test/run-all.js +0 -0
  217. package/test/run-conformance.js +0 -0
  218. package/test/run-examples.js +38 -8
  219. package/test/run-regression.js +29 -28
@@ -1,2560 +1,4 @@
1
1
  fft(ramp8, [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)]).
2
- why(
3
- fft(ramp8, [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)]),
4
- proof(
5
- goal(fft(ramp8, [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)])),
6
- by(rule("fft8-numeric.pl", clause(20))),
7
- bindings([binding("Wave", ramp8), binding("Spectrum", [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)]), binding("Samples", [0, 1, 2, 3, 4, 5, 6, 7])]),
8
- uses([
9
- proof(
10
- goal(wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7])),
11
- by(fact("fft8-numeric.pl", clause(18)))
12
- ),
13
- proof(
14
- goal(fft8([0, 1, 2, 3, 4, 5, 6, 7], [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)])),
15
- by(rule("fft8-numeric.pl", clause(17))),
16
- bindings([binding("X0", 0), binding("X1", 1), binding("X2", 2), binding("X3", 3), binding("X4", 4), binding("X5", 5), binding("X6", 6), binding("X7", 7), binding("Y0", c(28, 0.0)), binding("Y1", c(-4.0, 9.6568542494923797)), binding("Y2", c(-4.0, 4.0)), binding("Y3", c(-4.0, 1.6568542494923806)), binding("Y4", c(-4, 0.0)), binding("Y5", c(-4.0, -1.6568542494923806)), binding("Y6", c(-4.0, -4.0)), binding("Y7", c(-4.0, -9.6568542494923797)), binding("E0", c(12, 0.0)), binding("E1", c(-4.0, 4.0)), binding("E2", c(-4, 0.0)), binding("E3", c(-4.0, -4.0)), binding("O0", c(16, 0.0)), binding("O1", c(-4.0, 4.0)), binding("O2", c(-4, 0.0)), binding("O3", c(-4.0, -4.0)), binding("W1", c(0.7071067811865476, -0.7071067811865476)), binding("W2", c(0.0, -1.0)), binding("W3", c(-0.7071067811865476, -0.7071067811865476)), binding("T1", c(0.0, 5.6568542494923806)), binding("T2", c(0.0, 4.0)), binding("T3", c(0.0, 5.6568542494923806))]),
17
- uses([
18
- proof(
19
- goal(fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)])),
20
- by(rule("fft8-numeric.pl", clause(16))),
21
- bindings([binding("X0", 0), binding("X1", 2), binding("X2", 4), binding("X3", 6), binding("Y0", c(12, 0.0)), binding("Y1", c(-4.0, 4.0)), binding("Y2", c(-4, 0.0)), binding("Y3", c(-4.0, -4.0)), binding("E0", c(4, 0.0)), binding("E1", c(-4, 0.0)), binding("O0", c(8, 0.0)), binding("O1", c(-4, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 4.0))]),
22
- uses([
23
- proof(
24
- goal(fft2([0, 4], [c(4, 0.0), c(-4, 0.0)])),
25
- by(rule("fft8-numeric.pl", clause(15))),
26
- bindings([binding("X0", 0), binding("X1", 4), binding("Y0", c(4, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(0, 0.0)), binding("O0", c(4, 0.0))]),
27
- uses([
28
- proof(
29
- goal(fft1([0], [c(0, 0.0)])),
30
- by(fact("fft8-numeric.pl", clause(14))),
31
- bindings([binding("X", 0)])
32
- ),
33
- proof(
34
- goal(fft1([4], [c(4, 0.0)])),
35
- by(fact("fft8-numeric.pl", clause(14))),
36
- bindings([binding("X", 4)])
37
- ),
38
- proof(
39
- goal(c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0))),
40
- by(rule("fft8-numeric.pl", clause(11))),
41
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 4), binding("BI", 0.0), binding("CR", 4), binding("CI", 0.0)]),
42
- uses([
43
- proof(
44
- goal(add(0, 4, 4)),
45
- by(builtin(add, 3))
46
- ),
47
- proof(
48
- goal(add(0.0, 0.0, 0.0)),
49
- by(builtin(add, 3))
50
- )
51
- ])
52
- ),
53
- proof(
54
- goal(c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0))),
55
- by(rule("fft8-numeric.pl", clause(12))),
56
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 4), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
57
- uses([
58
- proof(
59
- goal(sub(0, 4, -4)),
60
- by(builtin(sub, 3))
61
- ),
62
- proof(
63
- goal(sub(0.0, 0.0, 0.0)),
64
- by(builtin(sub, 3))
65
- )
66
- ])
67
- )
68
- ])
69
- ),
70
- proof(
71
- goal(fft2([2, 6], [c(8, 0.0), c(-4, 0.0)])),
72
- by(rule("fft8-numeric.pl", clause(15))),
73
- bindings([binding("X0", 2), binding("X1", 6), binding("Y0", c(8, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(2, 0.0)), binding("O0", c(6, 0.0))]),
74
- uses([
75
- proof(
76
- goal(fft1([2], [c(2, 0.0)])),
77
- by(fact("fft8-numeric.pl", clause(14))),
78
- bindings([binding("X", 2)])
79
- ),
80
- proof(
81
- goal(fft1([6], [c(6, 0.0)])),
82
- by(fact("fft8-numeric.pl", clause(14))),
83
- bindings([binding("X", 6)])
84
- ),
85
- proof(
86
- goal(c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0))),
87
- by(rule("fft8-numeric.pl", clause(11))),
88
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 6), binding("BI", 0.0), binding("CR", 8), binding("CI", 0.0)]),
89
- uses([
90
- proof(
91
- goal(add(2, 6, 8)),
92
- by(builtin(add, 3))
93
- ),
94
- proof(
95
- goal(add(0.0, 0.0, 0.0)),
96
- by(builtin(add, 3))
97
- )
98
- ])
99
- ),
100
- proof(
101
- goal(c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0))),
102
- by(rule("fft8-numeric.pl", clause(12))),
103
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 6), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
104
- uses([
105
- proof(
106
- goal(sub(2, 6, -4)),
107
- by(builtin(sub, 3))
108
- ),
109
- proof(
110
- goal(sub(0.0, 0.0, 0.0)),
111
- by(builtin(sub, 3))
112
- )
113
- ])
114
- )
115
- ])
116
- ),
117
- proof(
118
- goal(w8(2, c(0.0, -1.0))),
119
- by(fact("fft8-numeric.pl", clause(5)))
120
- ),
121
- proof(
122
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
123
- by(rule("fft8-numeric.pl", clause(13))),
124
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
125
- uses([
126
- proof(
127
- goal(mul(0.0, -4, 0.0)),
128
- by(builtin(mul, 3))
129
- ),
130
- proof(
131
- goal(mul(-1.0, 0.0, 0.0)),
132
- by(builtin(mul, 3))
133
- ),
134
- proof(
135
- goal(sub(0.0, 0.0, 0.0)),
136
- by(builtin(sub, 3))
137
- ),
138
- proof(
139
- goal(mul(0.0, 0.0, 0.0)),
140
- by(builtin(mul, 3))
141
- ),
142
- proof(
143
- goal(mul(-1.0, -4, 4.0)),
144
- by(builtin(mul, 3))
145
- ),
146
- proof(
147
- goal(add(0.0, 4.0, 4.0)),
148
- by(builtin(add, 3))
149
- )
150
- ])
151
- ),
152
- proof(
153
- goal(c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0))),
154
- by(rule("fft8-numeric.pl", clause(11))),
155
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", 8), binding("BI", 0.0), binding("CR", 12), binding("CI", 0.0)]),
156
- uses([
157
- proof(
158
- goal(add(4, 8, 12)),
159
- by(builtin(add, 3))
160
- ),
161
- proof(
162
- goal(add(0.0, 0.0, 0.0)),
163
- by(builtin(add, 3))
164
- )
165
- ])
166
- ),
167
- proof(
168
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
169
- by(rule("fft8-numeric.pl", clause(11))),
170
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
171
- uses([
172
- proof(
173
- goal(add(-4, 0.0, -4.0)),
174
- by(builtin(add, 3))
175
- ),
176
- proof(
177
- goal(add(0.0, 4.0, 4.0)),
178
- by(builtin(add, 3))
179
- )
180
- ])
181
- ),
182
- proof(
183
- goal(c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0))),
184
- by(rule("fft8-numeric.pl", clause(12))),
185
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", 8), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
186
- uses([
187
- proof(
188
- goal(sub(4, 8, -4)),
189
- by(builtin(sub, 3))
190
- ),
191
- proof(
192
- goal(sub(0.0, 0.0, 0.0)),
193
- by(builtin(sub, 3))
194
- )
195
- ])
196
- ),
197
- proof(
198
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
199
- by(rule("fft8-numeric.pl", clause(12))),
200
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
201
- uses([
202
- proof(
203
- goal(sub(-4, 0.0, -4.0)),
204
- by(builtin(sub, 3))
205
- ),
206
- proof(
207
- goal(sub(0.0, 4.0, -4.0)),
208
- by(builtin(sub, 3))
209
- )
210
- ])
211
- )
212
- ])
213
- ),
214
- proof(
215
- goal(fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)])),
216
- by(rule("fft8-numeric.pl", clause(16))),
217
- bindings([binding("X0", 1), binding("X1", 3), binding("X2", 5), binding("X3", 7), binding("Y0", c(16, 0.0)), binding("Y1", c(-4.0, 4.0)), binding("Y2", c(-4, 0.0)), binding("Y3", c(-4.0, -4.0)), binding("E0", c(6, 0.0)), binding("E1", c(-4, 0.0)), binding("O0", c(10, 0.0)), binding("O1", c(-4, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 4.0))]),
218
- uses([
219
- proof(
220
- goal(fft2([1, 5], [c(6, 0.0), c(-4, 0.0)])),
221
- by(rule("fft8-numeric.pl", clause(15))),
222
- bindings([binding("X0", 1), binding("X1", 5), binding("Y0", c(6, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(5, 0.0))]),
223
- uses([
224
- proof(
225
- goal(fft1([1], [c(1, 0.0)])),
226
- by(fact("fft8-numeric.pl", clause(14))),
227
- bindings([binding("X", 1)])
228
- ),
229
- proof(
230
- goal(fft1([5], [c(5, 0.0)])),
231
- by(fact("fft8-numeric.pl", clause(14))),
232
- bindings([binding("X", 5)])
233
- ),
234
- proof(
235
- goal(c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0))),
236
- by(rule("fft8-numeric.pl", clause(11))),
237
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 5), binding("BI", 0.0), binding("CR", 6), binding("CI", 0.0)]),
238
- uses([
239
- proof(
240
- goal(add(1, 5, 6)),
241
- by(builtin(add, 3))
242
- ),
243
- proof(
244
- goal(add(0.0, 0.0, 0.0)),
245
- by(builtin(add, 3))
246
- )
247
- ])
248
- ),
249
- proof(
250
- goal(c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0))),
251
- by(rule("fft8-numeric.pl", clause(12))),
252
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 5), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
253
- uses([
254
- proof(
255
- goal(sub(1, 5, -4)),
256
- by(builtin(sub, 3))
257
- ),
258
- proof(
259
- goal(sub(0.0, 0.0, 0.0)),
260
- by(builtin(sub, 3))
261
- )
262
- ])
263
- )
264
- ])
265
- ),
266
- proof(
267
- goal(fft2([3, 7], [c(10, 0.0), c(-4, 0.0)])),
268
- by(rule("fft8-numeric.pl", clause(15))),
269
- bindings([binding("X0", 3), binding("X1", 7), binding("Y0", c(10, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(3, 0.0)), binding("O0", c(7, 0.0))]),
270
- uses([
271
- proof(
272
- goal(fft1([3], [c(3, 0.0)])),
273
- by(fact("fft8-numeric.pl", clause(14))),
274
- bindings([binding("X", 3)])
275
- ),
276
- proof(
277
- goal(fft1([7], [c(7, 0.0)])),
278
- by(fact("fft8-numeric.pl", clause(14))),
279
- bindings([binding("X", 7)])
280
- ),
281
- proof(
282
- goal(c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0))),
283
- by(rule("fft8-numeric.pl", clause(11))),
284
- bindings([binding("AR", 3), binding("AI", 0.0), binding("BR", 7), binding("BI", 0.0), binding("CR", 10), binding("CI", 0.0)]),
285
- uses([
286
- proof(
287
- goal(add(3, 7, 10)),
288
- by(builtin(add, 3))
289
- ),
290
- proof(
291
- goal(add(0.0, 0.0, 0.0)),
292
- by(builtin(add, 3))
293
- )
294
- ])
295
- ),
296
- proof(
297
- goal(c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0))),
298
- by(rule("fft8-numeric.pl", clause(12))),
299
- bindings([binding("AR", 3), binding("AI", 0.0), binding("BR", 7), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
300
- uses([
301
- proof(
302
- goal(sub(3, 7, -4)),
303
- by(builtin(sub, 3))
304
- ),
305
- proof(
306
- goal(sub(0.0, 0.0, 0.0)),
307
- by(builtin(sub, 3))
308
- )
309
- ])
310
- )
311
- ])
312
- ),
313
- proof(
314
- goal(w8(2, c(0.0, -1.0))),
315
- by(fact("fft8-numeric.pl", clause(5)))
316
- ),
317
- proof(
318
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
319
- by(rule("fft8-numeric.pl", clause(13))),
320
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
321
- uses([
322
- proof(
323
- goal(mul(0.0, -4, 0.0)),
324
- by(builtin(mul, 3))
325
- ),
326
- proof(
327
- goal(mul(-1.0, 0.0, 0.0)),
328
- by(builtin(mul, 3))
329
- ),
330
- proof(
331
- goal(sub(0.0, 0.0, 0.0)),
332
- by(builtin(sub, 3))
333
- ),
334
- proof(
335
- goal(mul(0.0, 0.0, 0.0)),
336
- by(builtin(mul, 3))
337
- ),
338
- proof(
339
- goal(mul(-1.0, -4, 4.0)),
340
- by(builtin(mul, 3))
341
- ),
342
- proof(
343
- goal(add(0.0, 4.0, 4.0)),
344
- by(builtin(add, 3))
345
- )
346
- ])
347
- ),
348
- proof(
349
- goal(c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0))),
350
- by(rule("fft8-numeric.pl", clause(11))),
351
- bindings([binding("AR", 6), binding("AI", 0.0), binding("BR", 10), binding("BI", 0.0), binding("CR", 16), binding("CI", 0.0)]),
352
- uses([
353
- proof(
354
- goal(add(6, 10, 16)),
355
- by(builtin(add, 3))
356
- ),
357
- proof(
358
- goal(add(0.0, 0.0, 0.0)),
359
- by(builtin(add, 3))
360
- )
361
- ])
362
- ),
363
- proof(
364
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
365
- by(rule("fft8-numeric.pl", clause(11))),
366
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
367
- uses([
368
- proof(
369
- goal(add(-4, 0.0, -4.0)),
370
- by(builtin(add, 3))
371
- ),
372
- proof(
373
- goal(add(0.0, 4.0, 4.0)),
374
- by(builtin(add, 3))
375
- )
376
- ])
377
- ),
378
- proof(
379
- goal(c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0))),
380
- by(rule("fft8-numeric.pl", clause(12))),
381
- bindings([binding("AR", 6), binding("AI", 0.0), binding("BR", 10), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
382
- uses([
383
- proof(
384
- goal(sub(6, 10, -4)),
385
- by(builtin(sub, 3))
386
- ),
387
- proof(
388
- goal(sub(0.0, 0.0, 0.0)),
389
- by(builtin(sub, 3))
390
- )
391
- ])
392
- ),
393
- proof(
394
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
395
- by(rule("fft8-numeric.pl", clause(12))),
396
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
397
- uses([
398
- proof(
399
- goal(sub(-4, 0.0, -4.0)),
400
- by(builtin(sub, 3))
401
- ),
402
- proof(
403
- goal(sub(0.0, 4.0, -4.0)),
404
- by(builtin(sub, 3))
405
- )
406
- ])
407
- )
408
- ])
409
- ),
410
- proof(
411
- goal(w8(1, c(0.7071067811865476, -0.7071067811865476))),
412
- by(fact("fft8-numeric.pl", clause(4)))
413
- ),
414
- proof(
415
- goal(w8(2, c(0.0, -1.0))),
416
- by(fact("fft8-numeric.pl", clause(5)))
417
- ),
418
- proof(
419
- goal(w8(3, c(-0.7071067811865476, -0.7071067811865476))),
420
- by(fact("fft8-numeric.pl", clause(6)))
421
- ),
422
- proof(
423
- goal(c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.6568542494923806))),
424
- by(rule("fft8-numeric.pl", clause(13))),
425
- bindings([binding("AR", 0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", -4.0), binding("BI", 4.0), binding("CR", 0.0), binding("CI", 5.6568542494923806), binding("AC", -2.8284271247461903), binding("BD", -2.8284271247461903), binding("AD", 2.8284271247461903), binding("BC", 2.8284271247461903)]),
426
- uses([
427
- proof(
428
- goal(mul(0.7071067811865476, -4.0, -2.8284271247461903)),
429
- by(builtin(mul, 3))
430
- ),
431
- proof(
432
- goal(mul(-0.7071067811865476, 4.0, -2.8284271247461903)),
433
- by(builtin(mul, 3))
434
- ),
435
- proof(
436
- goal(sub(-2.8284271247461903, -2.8284271247461903, 0.0)),
437
- by(builtin(sub, 3))
438
- ),
439
- proof(
440
- goal(mul(0.7071067811865476, 4.0, 2.8284271247461903)),
441
- by(builtin(mul, 3))
442
- ),
443
- proof(
444
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
445
- by(builtin(mul, 3))
446
- ),
447
- proof(
448
- goal(add(2.8284271247461903, 2.8284271247461903, 5.6568542494923806)),
449
- by(builtin(add, 3))
450
- )
451
- ])
452
- ),
453
- proof(
454
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
455
- by(rule("fft8-numeric.pl", clause(13))),
456
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
457
- uses([
458
- proof(
459
- goal(mul(0.0, -4, 0.0)),
460
- by(builtin(mul, 3))
461
- ),
462
- proof(
463
- goal(mul(-1.0, 0.0, 0.0)),
464
- by(builtin(mul, 3))
465
- ),
466
- proof(
467
- goal(sub(0.0, 0.0, 0.0)),
468
- by(builtin(sub, 3))
469
- ),
470
- proof(
471
- goal(mul(0.0, 0.0, 0.0)),
472
- by(builtin(mul, 3))
473
- ),
474
- proof(
475
- goal(mul(-1.0, -4, 4.0)),
476
- by(builtin(mul, 3))
477
- ),
478
- proof(
479
- goal(add(0.0, 4.0, 4.0)),
480
- by(builtin(add, 3))
481
- )
482
- ])
483
- ),
484
- proof(
485
- goal(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.6568542494923806))),
486
- by(rule("fft8-numeric.pl", clause(13))),
487
- bindings([binding("AR", -0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", -4.0), binding("BI", -4.0), binding("CR", 0.0), binding("CI", 5.6568542494923806), binding("AC", 2.8284271247461903), binding("BD", 2.8284271247461903), binding("AD", 2.8284271247461903), binding("BC", 2.8284271247461903)]),
488
- uses([
489
- proof(
490
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
491
- by(builtin(mul, 3))
492
- ),
493
- proof(
494
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
495
- by(builtin(mul, 3))
496
- ),
497
- proof(
498
- goal(sub(2.8284271247461903, 2.8284271247461903, 0.0)),
499
- by(builtin(sub, 3))
500
- ),
501
- proof(
502
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
503
- by(builtin(mul, 3))
504
- ),
505
- proof(
506
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
507
- by(builtin(mul, 3))
508
- ),
509
- proof(
510
- goal(add(2.8284271247461903, 2.8284271247461903, 5.6568542494923806)),
511
- by(builtin(add, 3))
512
- )
513
- ])
514
- ),
515
- proof(
516
- goal(c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0))),
517
- by(rule("fft8-numeric.pl", clause(11))),
518
- bindings([binding("AR", 12), binding("AI", 0.0), binding("BR", 16), binding("BI", 0.0), binding("CR", 28), binding("CI", 0.0)]),
519
- uses([
520
- proof(
521
- goal(add(12, 16, 28)),
522
- by(builtin(add, 3))
523
- ),
524
- proof(
525
- goal(add(0.0, 0.0, 0.0)),
526
- by(builtin(add, 3))
527
- )
528
- ])
529
- ),
530
- proof(
531
- goal(c_add(c(-4.0, 4.0), c(0.0, 5.6568542494923806), c(-4.0, 9.6568542494923797))),
532
- by(rule("fft8-numeric.pl", clause(11))),
533
- bindings([binding("AR", -4.0), binding("AI", 4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", 9.6568542494923797)]),
534
- uses([
535
- proof(
536
- goal(add(-4.0, 0.0, -4.0)),
537
- by(builtin(add, 3))
538
- ),
539
- proof(
540
- goal(add(4.0, 5.6568542494923806, 9.6568542494923797)),
541
- by(builtin(add, 3))
542
- )
543
- ])
544
- ),
545
- proof(
546
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
547
- by(rule("fft8-numeric.pl", clause(11))),
548
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
549
- uses([
550
- proof(
551
- goal(add(-4, 0.0, -4.0)),
552
- by(builtin(add, 3))
553
- ),
554
- proof(
555
- goal(add(0.0, 4.0, 4.0)),
556
- by(builtin(add, 3))
557
- )
558
- ])
559
- ),
560
- proof(
561
- goal(c_add(c(-4.0, -4.0), c(0.0, 5.6568542494923806), c(-4.0, 1.6568542494923806))),
562
- by(rule("fft8-numeric.pl", clause(11))),
563
- bindings([binding("AR", -4.0), binding("AI", -4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", 1.6568542494923806)]),
564
- uses([
565
- proof(
566
- goal(add(-4.0, 0.0, -4.0)),
567
- by(builtin(add, 3))
568
- ),
569
- proof(
570
- goal(add(-4.0, 5.6568542494923806, 1.6568542494923806)),
571
- by(builtin(add, 3))
572
- )
573
- ])
574
- ),
575
- proof(
576
- goal(c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0))),
577
- by(rule("fft8-numeric.pl", clause(12))),
578
- bindings([binding("AR", 12), binding("AI", 0.0), binding("BR", 16), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
579
- uses([
580
- proof(
581
- goal(sub(12, 16, -4)),
582
- by(builtin(sub, 3))
583
- ),
584
- proof(
585
- goal(sub(0.0, 0.0, 0.0)),
586
- by(builtin(sub, 3))
587
- )
588
- ])
589
- ),
590
- proof(
591
- goal(c_sub(c(-4.0, 4.0), c(0.0, 5.6568542494923806), c(-4.0, -1.6568542494923806))),
592
- by(rule("fft8-numeric.pl", clause(12))),
593
- bindings([binding("AR", -4.0), binding("AI", 4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", -1.6568542494923806)]),
594
- uses([
595
- proof(
596
- goal(sub(-4.0, 0.0, -4.0)),
597
- by(builtin(sub, 3))
598
- ),
599
- proof(
600
- goal(sub(4.0, 5.6568542494923806, -1.6568542494923806)),
601
- by(builtin(sub, 3))
602
- )
603
- ])
604
- ),
605
- proof(
606
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
607
- by(rule("fft8-numeric.pl", clause(12))),
608
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
609
- uses([
610
- proof(
611
- goal(sub(-4, 0.0, -4.0)),
612
- by(builtin(sub, 3))
613
- ),
614
- proof(
615
- goal(sub(0.0, 4.0, -4.0)),
616
- by(builtin(sub, 3))
617
- )
618
- ])
619
- ),
620
- proof(
621
- goal(c_sub(c(-4.0, -4.0), c(0.0, 5.6568542494923806), c(-4.0, -9.6568542494923797))),
622
- by(rule("fft8-numeric.pl", clause(12))),
623
- bindings([binding("AR", -4.0), binding("AI", -4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", -9.6568542494923797)]),
624
- uses([
625
- proof(
626
- goal(sub(-4.0, 0.0, -4.0)),
627
- by(builtin(sub, 3))
628
- ),
629
- proof(
630
- goal(sub(-4.0, 5.6568542494923806, -9.6568542494923797)),
631
- by(builtin(sub, 3))
632
- )
633
- ])
634
- )
635
- ])
636
- )
637
- ])
638
- )
639
- ).
640
-
641
2
  fft(alternating8, [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]).
642
- why(
643
- fft(alternating8, [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]),
644
- proof(
645
- goal(fft(alternating8, [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])),
646
- by(rule("fft8-numeric.pl", clause(20))),
647
- bindings([binding("Wave", alternating8), binding("Spectrum", [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)]), binding("Samples", [1, -1, 1, -1, 1, -1, 1, -1])]),
648
- uses([
649
- proof(
650
- goal(wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1])),
651
- by(fact("fft8-numeric.pl", clause(19)))
652
- ),
653
- proof(
654
- goal(fft8([1, -1, 1, -1, 1, -1, 1, -1], [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])),
655
- by(rule("fft8-numeric.pl", clause(17))),
656
- bindings([binding("X0", 1), binding("X1", -1), binding("X2", 1), binding("X3", -1), binding("X4", 1), binding("X5", -1), binding("X6", 1), binding("X7", -1), binding("Y0", c(0, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0.0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("Y4", c(8, 0.0)), binding("Y5", c(0.0, 0.0)), binding("Y6", c(0.0, 0.0)), binding("Y7", c(0.0, 0.0)), binding("E0", c(4, 0.0)), binding("E1", c(0.0, 0.0)), binding("E2", c(0, 0.0)), binding("E3", c(0.0, 0.0)), binding("O0", c(-4, 0.0)), binding("O1", c(0.0, 0.0)), binding("O2", c(0, 0.0)), binding("O3", c(0.0, 0.0)), binding("W1", c(0.7071067811865476, -0.7071067811865476)), binding("W2", c(0.0, -1.0)), binding("W3", c(-0.7071067811865476, -0.7071067811865476)), binding("T1", c(0.0, 0.0)), binding("T2", c(0.0, 0.0)), binding("T3", c(0.0, 0.0))]),
657
- uses([
658
- proof(
659
- goal(fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)])),
660
- by(rule("fft8-numeric.pl", clause(16))),
661
- bindings([binding("X0", 1), binding("X1", 1), binding("X2", 1), binding("X3", 1), binding("Y0", c(4, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("E0", c(2, 0.0)), binding("E1", c(0, 0.0)), binding("O0", c(2, 0.0)), binding("O1", c(0, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 0.0))]),
662
- uses([
663
- proof(
664
- goal(fft2([1, 1], [c(2, 0.0), c(0, 0.0)])),
665
- by(rule("fft8-numeric.pl", clause(15))),
666
- bindings([binding("X0", 1), binding("X1", 1), binding("Y0", c(2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(1, 0.0))]),
667
- uses([
668
- proof(
669
- goal(fft1([1], [c(1, 0.0)])),
670
- by(fact("fft8-numeric.pl", clause(14))),
671
- bindings([binding("X", 1)])
672
- ),
673
- proof(
674
- goal(fft1([1], [c(1, 0.0)])),
675
- by(fact("fft8-numeric.pl", clause(14))),
676
- bindings([binding("X", 1)])
677
- ),
678
- proof(
679
- goal(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0))),
680
- by(rule("fft8-numeric.pl", clause(11))),
681
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 2), binding("CI", 0.0)]),
682
- uses([
683
- proof(
684
- goal(add(1, 1, 2)),
685
- by(builtin(add, 3))
686
- ),
687
- proof(
688
- goal(add(0.0, 0.0, 0.0)),
689
- by(builtin(add, 3))
690
- )
691
- ])
692
- ),
693
- proof(
694
- goal(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))),
695
- by(rule("fft8-numeric.pl", clause(12))),
696
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
697
- uses([
698
- proof(
699
- goal(sub(1, 1, 0)),
700
- by(builtin(sub, 3))
701
- ),
702
- proof(
703
- goal(sub(0.0, 0.0, 0.0)),
704
- by(builtin(sub, 3))
705
- )
706
- ])
707
- )
708
- ])
709
- ),
710
- proof(
711
- goal(fft2([1, 1], [c(2, 0.0), c(0, 0.0)])),
712
- by(rule("fft8-numeric.pl", clause(15))),
713
- bindings([binding("X0", 1), binding("X1", 1), binding("Y0", c(2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(1, 0.0))]),
714
- uses([
715
- proof(
716
- goal(fft1([1], [c(1, 0.0)])),
717
- by(fact("fft8-numeric.pl", clause(14))),
718
- bindings([binding("X", 1)])
719
- ),
720
- proof(
721
- goal(fft1([1], [c(1, 0.0)])),
722
- by(fact("fft8-numeric.pl", clause(14))),
723
- bindings([binding("X", 1)])
724
- ),
725
- proof(
726
- goal(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0))),
727
- by(rule("fft8-numeric.pl", clause(11))),
728
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 2), binding("CI", 0.0)]),
729
- uses([
730
- proof(
731
- goal(add(1, 1, 2)),
732
- by(builtin(add, 3))
733
- ),
734
- proof(
735
- goal(add(0.0, 0.0, 0.0)),
736
- by(builtin(add, 3))
737
- )
738
- ])
739
- ),
740
- proof(
741
- goal(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))),
742
- by(rule("fft8-numeric.pl", clause(12))),
743
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
744
- uses([
745
- proof(
746
- goal(sub(1, 1, 0)),
747
- by(builtin(sub, 3))
748
- ),
749
- proof(
750
- goal(sub(0.0, 0.0, 0.0)),
751
- by(builtin(sub, 3))
752
- )
753
- ])
754
- )
755
- ])
756
- ),
757
- proof(
758
- goal(w8(2, c(0.0, -1.0))),
759
- by(fact("fft8-numeric.pl", clause(5)))
760
- ),
761
- proof(
762
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
763
- by(rule("fft8-numeric.pl", clause(13))),
764
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
765
- uses([
766
- proof(
767
- goal(mul(0.0, 0, 0.0)),
768
- by(builtin(mul, 3))
769
- ),
770
- proof(
771
- goal(mul(-1.0, 0.0, 0.0)),
772
- by(builtin(mul, 3))
773
- ),
774
- proof(
775
- goal(sub(0.0, 0.0, 0.0)),
776
- by(builtin(sub, 3))
777
- ),
778
- proof(
779
- goal(mul(0.0, 0.0, 0.0)),
780
- by(builtin(mul, 3))
781
- ),
782
- proof(
783
- goal(mul(-1.0, 0, 0.0)),
784
- by(builtin(mul, 3))
785
- ),
786
- proof(
787
- goal(add(0.0, 0.0, 0.0)),
788
- by(builtin(add, 3))
789
- )
790
- ])
791
- ),
792
- proof(
793
- goal(c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0))),
794
- by(rule("fft8-numeric.pl", clause(11))),
795
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 2), binding("BI", 0.0), binding("CR", 4), binding("CI", 0.0)]),
796
- uses([
797
- proof(
798
- goal(add(2, 2, 4)),
799
- by(builtin(add, 3))
800
- ),
801
- proof(
802
- goal(add(0.0, 0.0, 0.0)),
803
- by(builtin(add, 3))
804
- )
805
- ])
806
- ),
807
- proof(
808
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
809
- by(rule("fft8-numeric.pl", clause(11))),
810
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
811
- uses([
812
- proof(
813
- goal(add(0, 0.0, 0.0)),
814
- by(builtin(add, 3))
815
- ),
816
- proof(
817
- goal(add(0.0, 0.0, 0.0)),
818
- by(builtin(add, 3))
819
- )
820
- ])
821
- ),
822
- proof(
823
- goal(c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0))),
824
- by(rule("fft8-numeric.pl", clause(12))),
825
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 2), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
826
- uses([
827
- proof(
828
- goal(sub(2, 2, 0)),
829
- by(builtin(sub, 3))
830
- ),
831
- proof(
832
- goal(sub(0.0, 0.0, 0.0)),
833
- by(builtin(sub, 3))
834
- )
835
- ])
836
- ),
837
- proof(
838
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
839
- by(rule("fft8-numeric.pl", clause(12))),
840
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
841
- uses([
842
- proof(
843
- goal(sub(0, 0.0, 0.0)),
844
- by(builtin(sub, 3))
845
- ),
846
- proof(
847
- goal(sub(0.0, 0.0, 0.0)),
848
- by(builtin(sub, 3))
849
- )
850
- ])
851
- )
852
- ])
853
- ),
854
- proof(
855
- goal(fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)])),
856
- by(rule("fft8-numeric.pl", clause(16))),
857
- bindings([binding("X0", -1), binding("X1", -1), binding("X2", -1), binding("X3", -1), binding("Y0", c(-4, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("E0", c(-2, 0.0)), binding("E1", c(0, 0.0)), binding("O0", c(-2, 0.0)), binding("O1", c(0, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 0.0))]),
858
- uses([
859
- proof(
860
- goal(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)])),
861
- by(rule("fft8-numeric.pl", clause(15))),
862
- bindings([binding("X0", -1), binding("X1", -1), binding("Y0", c(-2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(-1, 0.0)), binding("O0", c(-1, 0.0))]),
863
- uses([
864
- proof(
865
- goal(fft1([-1], [c(-1, 0.0)])),
866
- by(fact("fft8-numeric.pl", clause(14))),
867
- bindings([binding("X", -1)])
868
- ),
869
- proof(
870
- goal(fft1([-1], [c(-1, 0.0)])),
871
- by(fact("fft8-numeric.pl", clause(14))),
872
- bindings([binding("X", -1)])
873
- ),
874
- proof(
875
- goal(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0))),
876
- by(rule("fft8-numeric.pl", clause(11))),
877
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", -2), binding("CI", 0.0)]),
878
- uses([
879
- proof(
880
- goal(add(-1, -1, -2)),
881
- by(builtin(add, 3))
882
- ),
883
- proof(
884
- goal(add(0.0, 0.0, 0.0)),
885
- by(builtin(add, 3))
886
- )
887
- ])
888
- ),
889
- proof(
890
- goal(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))),
891
- by(rule("fft8-numeric.pl", clause(12))),
892
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
893
- uses([
894
- proof(
895
- goal(sub(-1, -1, 0)),
896
- by(builtin(sub, 3))
897
- ),
898
- proof(
899
- goal(sub(0.0, 0.0, 0.0)),
900
- by(builtin(sub, 3))
901
- )
902
- ])
903
- )
904
- ])
905
- ),
906
- proof(
907
- goal(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)])),
908
- by(rule("fft8-numeric.pl", clause(15))),
909
- bindings([binding("X0", -1), binding("X1", -1), binding("Y0", c(-2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(-1, 0.0)), binding("O0", c(-1, 0.0))]),
910
- uses([
911
- proof(
912
- goal(fft1([-1], [c(-1, 0.0)])),
913
- by(fact("fft8-numeric.pl", clause(14))),
914
- bindings([binding("X", -1)])
915
- ),
916
- proof(
917
- goal(fft1([-1], [c(-1, 0.0)])),
918
- by(fact("fft8-numeric.pl", clause(14))),
919
- bindings([binding("X", -1)])
920
- ),
921
- proof(
922
- goal(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0))),
923
- by(rule("fft8-numeric.pl", clause(11))),
924
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", -2), binding("CI", 0.0)]),
925
- uses([
926
- proof(
927
- goal(add(-1, -1, -2)),
928
- by(builtin(add, 3))
929
- ),
930
- proof(
931
- goal(add(0.0, 0.0, 0.0)),
932
- by(builtin(add, 3))
933
- )
934
- ])
935
- ),
936
- proof(
937
- goal(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))),
938
- by(rule("fft8-numeric.pl", clause(12))),
939
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
940
- uses([
941
- proof(
942
- goal(sub(-1, -1, 0)),
943
- by(builtin(sub, 3))
944
- ),
945
- proof(
946
- goal(sub(0.0, 0.0, 0.0)),
947
- by(builtin(sub, 3))
948
- )
949
- ])
950
- )
951
- ])
952
- ),
953
- proof(
954
- goal(w8(2, c(0.0, -1.0))),
955
- by(fact("fft8-numeric.pl", clause(5)))
956
- ),
957
- proof(
958
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
959
- by(rule("fft8-numeric.pl", clause(13))),
960
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
961
- uses([
962
- proof(
963
- goal(mul(0.0, 0, 0.0)),
964
- by(builtin(mul, 3))
965
- ),
966
- proof(
967
- goal(mul(-1.0, 0.0, 0.0)),
968
- by(builtin(mul, 3))
969
- ),
970
- proof(
971
- goal(sub(0.0, 0.0, 0.0)),
972
- by(builtin(sub, 3))
973
- ),
974
- proof(
975
- goal(mul(0.0, 0.0, 0.0)),
976
- by(builtin(mul, 3))
977
- ),
978
- proof(
979
- goal(mul(-1.0, 0, 0.0)),
980
- by(builtin(mul, 3))
981
- ),
982
- proof(
983
- goal(add(0.0, 0.0, 0.0)),
984
- by(builtin(add, 3))
985
- )
986
- ])
987
- ),
988
- proof(
989
- goal(c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0))),
990
- by(rule("fft8-numeric.pl", clause(11))),
991
- bindings([binding("AR", -2), binding("AI", 0.0), binding("BR", -2), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
992
- uses([
993
- proof(
994
- goal(add(-2, -2, -4)),
995
- by(builtin(add, 3))
996
- ),
997
- proof(
998
- goal(add(0.0, 0.0, 0.0)),
999
- by(builtin(add, 3))
1000
- )
1001
- ])
1002
- ),
1003
- proof(
1004
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1005
- by(rule("fft8-numeric.pl", clause(11))),
1006
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1007
- uses([
1008
- proof(
1009
- goal(add(0, 0.0, 0.0)),
1010
- by(builtin(add, 3))
1011
- ),
1012
- proof(
1013
- goal(add(0.0, 0.0, 0.0)),
1014
- by(builtin(add, 3))
1015
- )
1016
- ])
1017
- ),
1018
- proof(
1019
- goal(c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0))),
1020
- by(rule("fft8-numeric.pl", clause(12))),
1021
- bindings([binding("AR", -2), binding("AI", 0.0), binding("BR", -2), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
1022
- uses([
1023
- proof(
1024
- goal(sub(-2, -2, 0)),
1025
- by(builtin(sub, 3))
1026
- ),
1027
- proof(
1028
- goal(sub(0.0, 0.0, 0.0)),
1029
- by(builtin(sub, 3))
1030
- )
1031
- ])
1032
- ),
1033
- proof(
1034
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1035
- by(rule("fft8-numeric.pl", clause(12))),
1036
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1037
- uses([
1038
- proof(
1039
- goal(sub(0, 0.0, 0.0)),
1040
- by(builtin(sub, 3))
1041
- ),
1042
- proof(
1043
- goal(sub(0.0, 0.0, 0.0)),
1044
- by(builtin(sub, 3))
1045
- )
1046
- ])
1047
- )
1048
- ])
1049
- ),
1050
- proof(
1051
- goal(w8(1, c(0.7071067811865476, -0.7071067811865476))),
1052
- by(fact("fft8-numeric.pl", clause(4)))
1053
- ),
1054
- proof(
1055
- goal(w8(2, c(0.0, -1.0))),
1056
- by(fact("fft8-numeric.pl", clause(5)))
1057
- ),
1058
- proof(
1059
- goal(w8(3, c(-0.7071067811865476, -0.7071067811865476))),
1060
- by(fact("fft8-numeric.pl", clause(6)))
1061
- ),
1062
- proof(
1063
- goal(c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0))),
1064
- by(rule("fft8-numeric.pl", clause(13))),
1065
- bindings([binding("AR", 0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
1066
- uses([
1067
- proof(
1068
- goal(mul(0.7071067811865476, 0.0, 0.0)),
1069
- by(builtin(mul, 3))
1070
- ),
1071
- proof(
1072
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1073
- by(builtin(mul, 3))
1074
- ),
1075
- proof(
1076
- goal(sub(0.0, 0.0, 0.0)),
1077
- by(builtin(sub, 3))
1078
- ),
1079
- proof(
1080
- goal(mul(0.7071067811865476, 0.0, 0.0)),
1081
- by(builtin(mul, 3))
1082
- ),
1083
- proof(
1084
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1085
- by(builtin(mul, 3))
1086
- ),
1087
- proof(
1088
- goal(add(0.0, 0.0, 0.0)),
1089
- by(builtin(add, 3))
1090
- )
1091
- ])
1092
- ),
1093
- proof(
1094
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
1095
- by(rule("fft8-numeric.pl", clause(13))),
1096
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
1097
- uses([
1098
- proof(
1099
- goal(mul(0.0, 0, 0.0)),
1100
- by(builtin(mul, 3))
1101
- ),
1102
- proof(
1103
- goal(mul(-1.0, 0.0, 0.0)),
1104
- by(builtin(mul, 3))
1105
- ),
1106
- proof(
1107
- goal(sub(0.0, 0.0, 0.0)),
1108
- by(builtin(sub, 3))
1109
- ),
1110
- proof(
1111
- goal(mul(0.0, 0.0, 0.0)),
1112
- by(builtin(mul, 3))
1113
- ),
1114
- proof(
1115
- goal(mul(-1.0, 0, 0.0)),
1116
- by(builtin(mul, 3))
1117
- ),
1118
- proof(
1119
- goal(add(0.0, 0.0, 0.0)),
1120
- by(builtin(add, 3))
1121
- )
1122
- ])
1123
- ),
1124
- proof(
1125
- goal(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0))),
1126
- by(rule("fft8-numeric.pl", clause(13))),
1127
- bindings([binding("AR", -0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
1128
- uses([
1129
- proof(
1130
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1131
- by(builtin(mul, 3))
1132
- ),
1133
- proof(
1134
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1135
- by(builtin(mul, 3))
1136
- ),
1137
- proof(
1138
- goal(sub(0.0, 0.0, 0.0)),
1139
- by(builtin(sub, 3))
1140
- ),
1141
- proof(
1142
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1143
- by(builtin(mul, 3))
1144
- ),
1145
- proof(
1146
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
1147
- by(builtin(mul, 3))
1148
- ),
1149
- proof(
1150
- goal(add(0.0, 0.0, 0.0)),
1151
- by(builtin(add, 3))
1152
- )
1153
- ])
1154
- ),
1155
- proof(
1156
- goal(c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0))),
1157
- by(rule("fft8-numeric.pl", clause(11))),
1158
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
1159
- uses([
1160
- proof(
1161
- goal(add(4, -4, 0)),
1162
- by(builtin(add, 3))
1163
- ),
1164
- proof(
1165
- goal(add(0.0, 0.0, 0.0)),
1166
- by(builtin(add, 3))
1167
- )
1168
- ])
1169
- ),
1170
- proof(
1171
- goal(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1172
- by(rule("fft8-numeric.pl", clause(11))),
1173
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1174
- uses([
1175
- proof(
1176
- goal(add(0.0, 0.0, 0.0)),
1177
- by(builtin(add, 3))
1178
- ),
1179
- proof(
1180
- goal(add(0.0, 0.0, 0.0)),
1181
- by(builtin(add, 3))
1182
- )
1183
- ])
1184
- ),
1185
- proof(
1186
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1187
- by(rule("fft8-numeric.pl", clause(11))),
1188
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1189
- uses([
1190
- proof(
1191
- goal(add(0, 0.0, 0.0)),
1192
- by(builtin(add, 3))
1193
- ),
1194
- proof(
1195
- goal(add(0.0, 0.0, 0.0)),
1196
- by(builtin(add, 3))
1197
- )
1198
- ])
1199
- ),
1200
- proof(
1201
- goal(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1202
- by(rule("fft8-numeric.pl", clause(11))),
1203
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1204
- uses([
1205
- proof(
1206
- goal(add(0.0, 0.0, 0.0)),
1207
- by(builtin(add, 3))
1208
- ),
1209
- proof(
1210
- goal(add(0.0, 0.0, 0.0)),
1211
- by(builtin(add, 3))
1212
- )
1213
- ])
1214
- ),
1215
- proof(
1216
- goal(c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0))),
1217
- by(rule("fft8-numeric.pl", clause(12))),
1218
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 8), binding("CI", 0.0)]),
1219
- uses([
1220
- proof(
1221
- goal(sub(4, -4, 8)),
1222
- by(builtin(sub, 3))
1223
- ),
1224
- proof(
1225
- goal(sub(0.0, 0.0, 0.0)),
1226
- by(builtin(sub, 3))
1227
- )
1228
- ])
1229
- ),
1230
- proof(
1231
- goal(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1232
- by(rule("fft8-numeric.pl", clause(12))),
1233
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1234
- uses([
1235
- proof(
1236
- goal(sub(0.0, 0.0, 0.0)),
1237
- by(builtin(sub, 3))
1238
- ),
1239
- proof(
1240
- goal(sub(0.0, 0.0, 0.0)),
1241
- by(builtin(sub, 3))
1242
- )
1243
- ])
1244
- ),
1245
- proof(
1246
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1247
- by(rule("fft8-numeric.pl", clause(12))),
1248
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1249
- uses([
1250
- proof(
1251
- goal(sub(0, 0.0, 0.0)),
1252
- by(builtin(sub, 3))
1253
- ),
1254
- proof(
1255
- goal(sub(0.0, 0.0, 0.0)),
1256
- by(builtin(sub, 3))
1257
- )
1258
- ])
1259
- ),
1260
- proof(
1261
- goal(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
1262
- by(rule("fft8-numeric.pl", clause(12))),
1263
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
1264
- uses([
1265
- proof(
1266
- goal(sub(0.0, 0.0, 0.0)),
1267
- by(builtin(sub, 3))
1268
- ),
1269
- proof(
1270
- goal(sub(0.0, 0.0, 0.0)),
1271
- by(builtin(sub, 3))
1272
- )
1273
- ])
1274
- )
1275
- ])
1276
- )
1277
- ])
1278
- )
1279
- ).
1280
-
1281
3
  dcComponent(ramp8, c(28, 0.0)).
1282
- why(
1283
- dcComponent(ramp8, c(28, 0.0)),
1284
- proof(
1285
- goal(dcComponent(ramp8, c(28, 0.0))),
1286
- by(rule("fft8-numeric.pl", clause(21))),
1287
- bindings([binding("Wave", ramp8), binding("DC", c(28, 0.0)), binding("Samples", [0, 1, 2, 3, 4, 5, 6, 7]), binding("__anon0", [c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)])]),
1288
- uses([
1289
- proof(
1290
- goal(wave(ramp8, [0, 1, 2, 3, 4, 5, 6, 7])),
1291
- by(fact("fft8-numeric.pl", clause(18)))
1292
- ),
1293
- proof(
1294
- goal(fft8([0, 1, 2, 3, 4, 5, 6, 7], [c(28, 0.0), c(-4.0, 9.6568542494923797), c(-4.0, 4.0), c(-4.0, 1.6568542494923806), c(-4, 0.0), c(-4.0, -1.6568542494923806), c(-4.0, -4.0), c(-4.0, -9.6568542494923797)])),
1295
- by(rule("fft8-numeric.pl", clause(17))),
1296
- bindings([binding("X0", 0), binding("X1", 1), binding("X2", 2), binding("X3", 3), binding("X4", 4), binding("X5", 5), binding("X6", 6), binding("X7", 7), binding("Y0", c(28, 0.0)), binding("Y1", c(-4.0, 9.6568542494923797)), binding("Y2", c(-4.0, 4.0)), binding("Y3", c(-4.0, 1.6568542494923806)), binding("Y4", c(-4, 0.0)), binding("Y5", c(-4.0, -1.6568542494923806)), binding("Y6", c(-4.0, -4.0)), binding("Y7", c(-4.0, -9.6568542494923797)), binding("E0", c(12, 0.0)), binding("E1", c(-4.0, 4.0)), binding("E2", c(-4, 0.0)), binding("E3", c(-4.0, -4.0)), binding("O0", c(16, 0.0)), binding("O1", c(-4.0, 4.0)), binding("O2", c(-4, 0.0)), binding("O3", c(-4.0, -4.0)), binding("W1", c(0.7071067811865476, -0.7071067811865476)), binding("W2", c(0.0, -1.0)), binding("W3", c(-0.7071067811865476, -0.7071067811865476)), binding("T1", c(0.0, 5.6568542494923806)), binding("T2", c(0.0, 4.0)), binding("T3", c(0.0, 5.6568542494923806))]),
1297
- uses([
1298
- proof(
1299
- goal(fft4([0, 2, 4, 6], [c(12, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)])),
1300
- by(rule("fft8-numeric.pl", clause(16))),
1301
- bindings([binding("X0", 0), binding("X1", 2), binding("X2", 4), binding("X3", 6), binding("Y0", c(12, 0.0)), binding("Y1", c(-4.0, 4.0)), binding("Y2", c(-4, 0.0)), binding("Y3", c(-4.0, -4.0)), binding("E0", c(4, 0.0)), binding("E1", c(-4, 0.0)), binding("O0", c(8, 0.0)), binding("O1", c(-4, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 4.0))]),
1302
- uses([
1303
- proof(
1304
- goal(fft2([0, 4], [c(4, 0.0), c(-4, 0.0)])),
1305
- by(rule("fft8-numeric.pl", clause(15))),
1306
- bindings([binding("X0", 0), binding("X1", 4), binding("Y0", c(4, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(0, 0.0)), binding("O0", c(4, 0.0))]),
1307
- uses([
1308
- proof(
1309
- goal(fft1([0], [c(0, 0.0)])),
1310
- by(fact("fft8-numeric.pl", clause(14))),
1311
- bindings([binding("X", 0)])
1312
- ),
1313
- proof(
1314
- goal(fft1([4], [c(4, 0.0)])),
1315
- by(fact("fft8-numeric.pl", clause(14))),
1316
- bindings([binding("X", 4)])
1317
- ),
1318
- proof(
1319
- goal(c_add(c(0, 0.0), c(4, 0.0), c(4, 0.0))),
1320
- by(rule("fft8-numeric.pl", clause(11))),
1321
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 4), binding("BI", 0.0), binding("CR", 4), binding("CI", 0.0)]),
1322
- uses([
1323
- proof(
1324
- goal(add(0, 4, 4)),
1325
- by(builtin(add, 3))
1326
- ),
1327
- proof(
1328
- goal(add(0.0, 0.0, 0.0)),
1329
- by(builtin(add, 3))
1330
- )
1331
- ])
1332
- ),
1333
- proof(
1334
- goal(c_sub(c(0, 0.0), c(4, 0.0), c(-4, 0.0))),
1335
- by(rule("fft8-numeric.pl", clause(12))),
1336
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 4), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1337
- uses([
1338
- proof(
1339
- goal(sub(0, 4, -4)),
1340
- by(builtin(sub, 3))
1341
- ),
1342
- proof(
1343
- goal(sub(0.0, 0.0, 0.0)),
1344
- by(builtin(sub, 3))
1345
- )
1346
- ])
1347
- )
1348
- ])
1349
- ),
1350
- proof(
1351
- goal(fft2([2, 6], [c(8, 0.0), c(-4, 0.0)])),
1352
- by(rule("fft8-numeric.pl", clause(15))),
1353
- bindings([binding("X0", 2), binding("X1", 6), binding("Y0", c(8, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(2, 0.0)), binding("O0", c(6, 0.0))]),
1354
- uses([
1355
- proof(
1356
- goal(fft1([2], [c(2, 0.0)])),
1357
- by(fact("fft8-numeric.pl", clause(14))),
1358
- bindings([binding("X", 2)])
1359
- ),
1360
- proof(
1361
- goal(fft1([6], [c(6, 0.0)])),
1362
- by(fact("fft8-numeric.pl", clause(14))),
1363
- bindings([binding("X", 6)])
1364
- ),
1365
- proof(
1366
- goal(c_add(c(2, 0.0), c(6, 0.0), c(8, 0.0))),
1367
- by(rule("fft8-numeric.pl", clause(11))),
1368
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 6), binding("BI", 0.0), binding("CR", 8), binding("CI", 0.0)]),
1369
- uses([
1370
- proof(
1371
- goal(add(2, 6, 8)),
1372
- by(builtin(add, 3))
1373
- ),
1374
- proof(
1375
- goal(add(0.0, 0.0, 0.0)),
1376
- by(builtin(add, 3))
1377
- )
1378
- ])
1379
- ),
1380
- proof(
1381
- goal(c_sub(c(2, 0.0), c(6, 0.0), c(-4, 0.0))),
1382
- by(rule("fft8-numeric.pl", clause(12))),
1383
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 6), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1384
- uses([
1385
- proof(
1386
- goal(sub(2, 6, -4)),
1387
- by(builtin(sub, 3))
1388
- ),
1389
- proof(
1390
- goal(sub(0.0, 0.0, 0.0)),
1391
- by(builtin(sub, 3))
1392
- )
1393
- ])
1394
- )
1395
- ])
1396
- ),
1397
- proof(
1398
- goal(w8(2, c(0.0, -1.0))),
1399
- by(fact("fft8-numeric.pl", clause(5)))
1400
- ),
1401
- proof(
1402
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
1403
- by(rule("fft8-numeric.pl", clause(13))),
1404
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
1405
- uses([
1406
- proof(
1407
- goal(mul(0.0, -4, 0.0)),
1408
- by(builtin(mul, 3))
1409
- ),
1410
- proof(
1411
- goal(mul(-1.0, 0.0, 0.0)),
1412
- by(builtin(mul, 3))
1413
- ),
1414
- proof(
1415
- goal(sub(0.0, 0.0, 0.0)),
1416
- by(builtin(sub, 3))
1417
- ),
1418
- proof(
1419
- goal(mul(0.0, 0.0, 0.0)),
1420
- by(builtin(mul, 3))
1421
- ),
1422
- proof(
1423
- goal(mul(-1.0, -4, 4.0)),
1424
- by(builtin(mul, 3))
1425
- ),
1426
- proof(
1427
- goal(add(0.0, 4.0, 4.0)),
1428
- by(builtin(add, 3))
1429
- )
1430
- ])
1431
- ),
1432
- proof(
1433
- goal(c_add(c(4, 0.0), c(8, 0.0), c(12, 0.0))),
1434
- by(rule("fft8-numeric.pl", clause(11))),
1435
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", 8), binding("BI", 0.0), binding("CR", 12), binding("CI", 0.0)]),
1436
- uses([
1437
- proof(
1438
- goal(add(4, 8, 12)),
1439
- by(builtin(add, 3))
1440
- ),
1441
- proof(
1442
- goal(add(0.0, 0.0, 0.0)),
1443
- by(builtin(add, 3))
1444
- )
1445
- ])
1446
- ),
1447
- proof(
1448
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
1449
- by(rule("fft8-numeric.pl", clause(11))),
1450
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
1451
- uses([
1452
- proof(
1453
- goal(add(-4, 0.0, -4.0)),
1454
- by(builtin(add, 3))
1455
- ),
1456
- proof(
1457
- goal(add(0.0, 4.0, 4.0)),
1458
- by(builtin(add, 3))
1459
- )
1460
- ])
1461
- ),
1462
- proof(
1463
- goal(c_sub(c(4, 0.0), c(8, 0.0), c(-4, 0.0))),
1464
- by(rule("fft8-numeric.pl", clause(12))),
1465
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", 8), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1466
- uses([
1467
- proof(
1468
- goal(sub(4, 8, -4)),
1469
- by(builtin(sub, 3))
1470
- ),
1471
- proof(
1472
- goal(sub(0.0, 0.0, 0.0)),
1473
- by(builtin(sub, 3))
1474
- )
1475
- ])
1476
- ),
1477
- proof(
1478
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
1479
- by(rule("fft8-numeric.pl", clause(12))),
1480
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
1481
- uses([
1482
- proof(
1483
- goal(sub(-4, 0.0, -4.0)),
1484
- by(builtin(sub, 3))
1485
- ),
1486
- proof(
1487
- goal(sub(0.0, 4.0, -4.0)),
1488
- by(builtin(sub, 3))
1489
- )
1490
- ])
1491
- )
1492
- ])
1493
- ),
1494
- proof(
1495
- goal(fft4([1, 3, 5, 7], [c(16, 0.0), c(-4.0, 4.0), c(-4, 0.0), c(-4.0, -4.0)])),
1496
- by(rule("fft8-numeric.pl", clause(16))),
1497
- bindings([binding("X0", 1), binding("X1", 3), binding("X2", 5), binding("X3", 7), binding("Y0", c(16, 0.0)), binding("Y1", c(-4.0, 4.0)), binding("Y2", c(-4, 0.0)), binding("Y3", c(-4.0, -4.0)), binding("E0", c(6, 0.0)), binding("E1", c(-4, 0.0)), binding("O0", c(10, 0.0)), binding("O1", c(-4, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 4.0))]),
1498
- uses([
1499
- proof(
1500
- goal(fft2([1, 5], [c(6, 0.0), c(-4, 0.0)])),
1501
- by(rule("fft8-numeric.pl", clause(15))),
1502
- bindings([binding("X0", 1), binding("X1", 5), binding("Y0", c(6, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(5, 0.0))]),
1503
- uses([
1504
- proof(
1505
- goal(fft1([1], [c(1, 0.0)])),
1506
- by(fact("fft8-numeric.pl", clause(14))),
1507
- bindings([binding("X", 1)])
1508
- ),
1509
- proof(
1510
- goal(fft1([5], [c(5, 0.0)])),
1511
- by(fact("fft8-numeric.pl", clause(14))),
1512
- bindings([binding("X", 5)])
1513
- ),
1514
- proof(
1515
- goal(c_add(c(1, 0.0), c(5, 0.0), c(6, 0.0))),
1516
- by(rule("fft8-numeric.pl", clause(11))),
1517
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 5), binding("BI", 0.0), binding("CR", 6), binding("CI", 0.0)]),
1518
- uses([
1519
- proof(
1520
- goal(add(1, 5, 6)),
1521
- by(builtin(add, 3))
1522
- ),
1523
- proof(
1524
- goal(add(0.0, 0.0, 0.0)),
1525
- by(builtin(add, 3))
1526
- )
1527
- ])
1528
- ),
1529
- proof(
1530
- goal(c_sub(c(1, 0.0), c(5, 0.0), c(-4, 0.0))),
1531
- by(rule("fft8-numeric.pl", clause(12))),
1532
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 5), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1533
- uses([
1534
- proof(
1535
- goal(sub(1, 5, -4)),
1536
- by(builtin(sub, 3))
1537
- ),
1538
- proof(
1539
- goal(sub(0.0, 0.0, 0.0)),
1540
- by(builtin(sub, 3))
1541
- )
1542
- ])
1543
- )
1544
- ])
1545
- ),
1546
- proof(
1547
- goal(fft2([3, 7], [c(10, 0.0), c(-4, 0.0)])),
1548
- by(rule("fft8-numeric.pl", clause(15))),
1549
- bindings([binding("X0", 3), binding("X1", 7), binding("Y0", c(10, 0.0)), binding("Y1", c(-4, 0.0)), binding("E0", c(3, 0.0)), binding("O0", c(7, 0.0))]),
1550
- uses([
1551
- proof(
1552
- goal(fft1([3], [c(3, 0.0)])),
1553
- by(fact("fft8-numeric.pl", clause(14))),
1554
- bindings([binding("X", 3)])
1555
- ),
1556
- proof(
1557
- goal(fft1([7], [c(7, 0.0)])),
1558
- by(fact("fft8-numeric.pl", clause(14))),
1559
- bindings([binding("X", 7)])
1560
- ),
1561
- proof(
1562
- goal(c_add(c(3, 0.0), c(7, 0.0), c(10, 0.0))),
1563
- by(rule("fft8-numeric.pl", clause(11))),
1564
- bindings([binding("AR", 3), binding("AI", 0.0), binding("BR", 7), binding("BI", 0.0), binding("CR", 10), binding("CI", 0.0)]),
1565
- uses([
1566
- proof(
1567
- goal(add(3, 7, 10)),
1568
- by(builtin(add, 3))
1569
- ),
1570
- proof(
1571
- goal(add(0.0, 0.0, 0.0)),
1572
- by(builtin(add, 3))
1573
- )
1574
- ])
1575
- ),
1576
- proof(
1577
- goal(c_sub(c(3, 0.0), c(7, 0.0), c(-4, 0.0))),
1578
- by(rule("fft8-numeric.pl", clause(12))),
1579
- bindings([binding("AR", 3), binding("AI", 0.0), binding("BR", 7), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1580
- uses([
1581
- proof(
1582
- goal(sub(3, 7, -4)),
1583
- by(builtin(sub, 3))
1584
- ),
1585
- proof(
1586
- goal(sub(0.0, 0.0, 0.0)),
1587
- by(builtin(sub, 3))
1588
- )
1589
- ])
1590
- )
1591
- ])
1592
- ),
1593
- proof(
1594
- goal(w8(2, c(0.0, -1.0))),
1595
- by(fact("fft8-numeric.pl", clause(5)))
1596
- ),
1597
- proof(
1598
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
1599
- by(rule("fft8-numeric.pl", clause(13))),
1600
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
1601
- uses([
1602
- proof(
1603
- goal(mul(0.0, -4, 0.0)),
1604
- by(builtin(mul, 3))
1605
- ),
1606
- proof(
1607
- goal(mul(-1.0, 0.0, 0.0)),
1608
- by(builtin(mul, 3))
1609
- ),
1610
- proof(
1611
- goal(sub(0.0, 0.0, 0.0)),
1612
- by(builtin(sub, 3))
1613
- ),
1614
- proof(
1615
- goal(mul(0.0, 0.0, 0.0)),
1616
- by(builtin(mul, 3))
1617
- ),
1618
- proof(
1619
- goal(mul(-1.0, -4, 4.0)),
1620
- by(builtin(mul, 3))
1621
- ),
1622
- proof(
1623
- goal(add(0.0, 4.0, 4.0)),
1624
- by(builtin(add, 3))
1625
- )
1626
- ])
1627
- ),
1628
- proof(
1629
- goal(c_add(c(6, 0.0), c(10, 0.0), c(16, 0.0))),
1630
- by(rule("fft8-numeric.pl", clause(11))),
1631
- bindings([binding("AR", 6), binding("AI", 0.0), binding("BR", 10), binding("BI", 0.0), binding("CR", 16), binding("CI", 0.0)]),
1632
- uses([
1633
- proof(
1634
- goal(add(6, 10, 16)),
1635
- by(builtin(add, 3))
1636
- ),
1637
- proof(
1638
- goal(add(0.0, 0.0, 0.0)),
1639
- by(builtin(add, 3))
1640
- )
1641
- ])
1642
- ),
1643
- proof(
1644
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
1645
- by(rule("fft8-numeric.pl", clause(11))),
1646
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
1647
- uses([
1648
- proof(
1649
- goal(add(-4, 0.0, -4.0)),
1650
- by(builtin(add, 3))
1651
- ),
1652
- proof(
1653
- goal(add(0.0, 4.0, 4.0)),
1654
- by(builtin(add, 3))
1655
- )
1656
- ])
1657
- ),
1658
- proof(
1659
- goal(c_sub(c(6, 0.0), c(10, 0.0), c(-4, 0.0))),
1660
- by(rule("fft8-numeric.pl", clause(12))),
1661
- bindings([binding("AR", 6), binding("AI", 0.0), binding("BR", 10), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1662
- uses([
1663
- proof(
1664
- goal(sub(6, 10, -4)),
1665
- by(builtin(sub, 3))
1666
- ),
1667
- proof(
1668
- goal(sub(0.0, 0.0, 0.0)),
1669
- by(builtin(sub, 3))
1670
- )
1671
- ])
1672
- ),
1673
- proof(
1674
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
1675
- by(rule("fft8-numeric.pl", clause(12))),
1676
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
1677
- uses([
1678
- proof(
1679
- goal(sub(-4, 0.0, -4.0)),
1680
- by(builtin(sub, 3))
1681
- ),
1682
- proof(
1683
- goal(sub(0.0, 4.0, -4.0)),
1684
- by(builtin(sub, 3))
1685
- )
1686
- ])
1687
- )
1688
- ])
1689
- ),
1690
- proof(
1691
- goal(w8(1, c(0.7071067811865476, -0.7071067811865476))),
1692
- by(fact("fft8-numeric.pl", clause(4)))
1693
- ),
1694
- proof(
1695
- goal(w8(2, c(0.0, -1.0))),
1696
- by(fact("fft8-numeric.pl", clause(5)))
1697
- ),
1698
- proof(
1699
- goal(w8(3, c(-0.7071067811865476, -0.7071067811865476))),
1700
- by(fact("fft8-numeric.pl", clause(6)))
1701
- ),
1702
- proof(
1703
- goal(c_mul(c(0.7071067811865476, -0.7071067811865476), c(-4.0, 4.0), c(0.0, 5.6568542494923806))),
1704
- by(rule("fft8-numeric.pl", clause(13))),
1705
- bindings([binding("AR", 0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", -4.0), binding("BI", 4.0), binding("CR", 0.0), binding("CI", 5.6568542494923806), binding("AC", -2.8284271247461903), binding("BD", -2.8284271247461903), binding("AD", 2.8284271247461903), binding("BC", 2.8284271247461903)]),
1706
- uses([
1707
- proof(
1708
- goal(mul(0.7071067811865476, -4.0, -2.8284271247461903)),
1709
- by(builtin(mul, 3))
1710
- ),
1711
- proof(
1712
- goal(mul(-0.7071067811865476, 4.0, -2.8284271247461903)),
1713
- by(builtin(mul, 3))
1714
- ),
1715
- proof(
1716
- goal(sub(-2.8284271247461903, -2.8284271247461903, 0.0)),
1717
- by(builtin(sub, 3))
1718
- ),
1719
- proof(
1720
- goal(mul(0.7071067811865476, 4.0, 2.8284271247461903)),
1721
- by(builtin(mul, 3))
1722
- ),
1723
- proof(
1724
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
1725
- by(builtin(mul, 3))
1726
- ),
1727
- proof(
1728
- goal(add(2.8284271247461903, 2.8284271247461903, 5.6568542494923806)),
1729
- by(builtin(add, 3))
1730
- )
1731
- ])
1732
- ),
1733
- proof(
1734
- goal(c_mul(c(0.0, -1.0), c(-4, 0.0), c(0.0, 4.0))),
1735
- by(rule("fft8-numeric.pl", clause(13))),
1736
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 4.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 4.0)]),
1737
- uses([
1738
- proof(
1739
- goal(mul(0.0, -4, 0.0)),
1740
- by(builtin(mul, 3))
1741
- ),
1742
- proof(
1743
- goal(mul(-1.0, 0.0, 0.0)),
1744
- by(builtin(mul, 3))
1745
- ),
1746
- proof(
1747
- goal(sub(0.0, 0.0, 0.0)),
1748
- by(builtin(sub, 3))
1749
- ),
1750
- proof(
1751
- goal(mul(0.0, 0.0, 0.0)),
1752
- by(builtin(mul, 3))
1753
- ),
1754
- proof(
1755
- goal(mul(-1.0, -4, 4.0)),
1756
- by(builtin(mul, 3))
1757
- ),
1758
- proof(
1759
- goal(add(0.0, 4.0, 4.0)),
1760
- by(builtin(add, 3))
1761
- )
1762
- ])
1763
- ),
1764
- proof(
1765
- goal(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(-4.0, -4.0), c(0.0, 5.6568542494923806))),
1766
- by(rule("fft8-numeric.pl", clause(13))),
1767
- bindings([binding("AR", -0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", -4.0), binding("BI", -4.0), binding("CR", 0.0), binding("CI", 5.6568542494923806), binding("AC", 2.8284271247461903), binding("BD", 2.8284271247461903), binding("AD", 2.8284271247461903), binding("BC", 2.8284271247461903)]),
1768
- uses([
1769
- proof(
1770
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
1771
- by(builtin(mul, 3))
1772
- ),
1773
- proof(
1774
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
1775
- by(builtin(mul, 3))
1776
- ),
1777
- proof(
1778
- goal(sub(2.8284271247461903, 2.8284271247461903, 0.0)),
1779
- by(builtin(sub, 3))
1780
- ),
1781
- proof(
1782
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
1783
- by(builtin(mul, 3))
1784
- ),
1785
- proof(
1786
- goal(mul(-0.7071067811865476, -4.0, 2.8284271247461903)),
1787
- by(builtin(mul, 3))
1788
- ),
1789
- proof(
1790
- goal(add(2.8284271247461903, 2.8284271247461903, 5.6568542494923806)),
1791
- by(builtin(add, 3))
1792
- )
1793
- ])
1794
- ),
1795
- proof(
1796
- goal(c_add(c(12, 0.0), c(16, 0.0), c(28, 0.0))),
1797
- by(rule("fft8-numeric.pl", clause(11))),
1798
- bindings([binding("AR", 12), binding("AI", 0.0), binding("BR", 16), binding("BI", 0.0), binding("CR", 28), binding("CI", 0.0)]),
1799
- uses([
1800
- proof(
1801
- goal(add(12, 16, 28)),
1802
- by(builtin(add, 3))
1803
- ),
1804
- proof(
1805
- goal(add(0.0, 0.0, 0.0)),
1806
- by(builtin(add, 3))
1807
- )
1808
- ])
1809
- ),
1810
- proof(
1811
- goal(c_add(c(-4.0, 4.0), c(0.0, 5.6568542494923806), c(-4.0, 9.6568542494923797))),
1812
- by(rule("fft8-numeric.pl", clause(11))),
1813
- bindings([binding("AR", -4.0), binding("AI", 4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", 9.6568542494923797)]),
1814
- uses([
1815
- proof(
1816
- goal(add(-4.0, 0.0, -4.0)),
1817
- by(builtin(add, 3))
1818
- ),
1819
- proof(
1820
- goal(add(4.0, 5.6568542494923806, 9.6568542494923797)),
1821
- by(builtin(add, 3))
1822
- )
1823
- ])
1824
- ),
1825
- proof(
1826
- goal(c_add(c(-4, 0.0), c(0.0, 4.0), c(-4.0, 4.0))),
1827
- by(rule("fft8-numeric.pl", clause(11))),
1828
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", 4.0)]),
1829
- uses([
1830
- proof(
1831
- goal(add(-4, 0.0, -4.0)),
1832
- by(builtin(add, 3))
1833
- ),
1834
- proof(
1835
- goal(add(0.0, 4.0, 4.0)),
1836
- by(builtin(add, 3))
1837
- )
1838
- ])
1839
- ),
1840
- proof(
1841
- goal(c_add(c(-4.0, -4.0), c(0.0, 5.6568542494923806), c(-4.0, 1.6568542494923806))),
1842
- by(rule("fft8-numeric.pl", clause(11))),
1843
- bindings([binding("AR", -4.0), binding("AI", -4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", 1.6568542494923806)]),
1844
- uses([
1845
- proof(
1846
- goal(add(-4.0, 0.0, -4.0)),
1847
- by(builtin(add, 3))
1848
- ),
1849
- proof(
1850
- goal(add(-4.0, 5.6568542494923806, 1.6568542494923806)),
1851
- by(builtin(add, 3))
1852
- )
1853
- ])
1854
- ),
1855
- proof(
1856
- goal(c_sub(c(12, 0.0), c(16, 0.0), c(-4, 0.0))),
1857
- by(rule("fft8-numeric.pl", clause(12))),
1858
- bindings([binding("AR", 12), binding("AI", 0.0), binding("BR", 16), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
1859
- uses([
1860
- proof(
1861
- goal(sub(12, 16, -4)),
1862
- by(builtin(sub, 3))
1863
- ),
1864
- proof(
1865
- goal(sub(0.0, 0.0, 0.0)),
1866
- by(builtin(sub, 3))
1867
- )
1868
- ])
1869
- ),
1870
- proof(
1871
- goal(c_sub(c(-4.0, 4.0), c(0.0, 5.6568542494923806), c(-4.0, -1.6568542494923806))),
1872
- by(rule("fft8-numeric.pl", clause(12))),
1873
- bindings([binding("AR", -4.0), binding("AI", 4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", -1.6568542494923806)]),
1874
- uses([
1875
- proof(
1876
- goal(sub(-4.0, 0.0, -4.0)),
1877
- by(builtin(sub, 3))
1878
- ),
1879
- proof(
1880
- goal(sub(4.0, 5.6568542494923806, -1.6568542494923806)),
1881
- by(builtin(sub, 3))
1882
- )
1883
- ])
1884
- ),
1885
- proof(
1886
- goal(c_sub(c(-4, 0.0), c(0.0, 4.0), c(-4.0, -4.0))),
1887
- by(rule("fft8-numeric.pl", clause(12))),
1888
- bindings([binding("AR", -4), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 4.0), binding("CR", -4.0), binding("CI", -4.0)]),
1889
- uses([
1890
- proof(
1891
- goal(sub(-4, 0.0, -4.0)),
1892
- by(builtin(sub, 3))
1893
- ),
1894
- proof(
1895
- goal(sub(0.0, 4.0, -4.0)),
1896
- by(builtin(sub, 3))
1897
- )
1898
- ])
1899
- ),
1900
- proof(
1901
- goal(c_sub(c(-4.0, -4.0), c(0.0, 5.6568542494923806), c(-4.0, -9.6568542494923797))),
1902
- by(rule("fft8-numeric.pl", clause(12))),
1903
- bindings([binding("AR", -4.0), binding("AI", -4.0), binding("BR", 0.0), binding("BI", 5.6568542494923806), binding("CR", -4.0), binding("CI", -9.6568542494923797)]),
1904
- uses([
1905
- proof(
1906
- goal(sub(-4.0, 0.0, -4.0)),
1907
- by(builtin(sub, 3))
1908
- ),
1909
- proof(
1910
- goal(sub(-4.0, 5.6568542494923806, -9.6568542494923797)),
1911
- by(builtin(sub, 3))
1912
- )
1913
- ])
1914
- )
1915
- ])
1916
- )
1917
- ])
1918
- )
1919
- ).
1920
-
1921
4
  dcComponent(alternating8, c(0, 0.0)).
1922
- why(
1923
- dcComponent(alternating8, c(0, 0.0)),
1924
- proof(
1925
- goal(dcComponent(alternating8, c(0, 0.0))),
1926
- by(rule("fft8-numeric.pl", clause(21))),
1927
- bindings([binding("Wave", alternating8), binding("DC", c(0, 0.0)), binding("Samples", [1, -1, 1, -1, 1, -1, 1, -1]), binding("__anon0", [c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])]),
1928
- uses([
1929
- proof(
1930
- goal(wave(alternating8, [1, -1, 1, -1, 1, -1, 1, -1])),
1931
- by(fact("fft8-numeric.pl", clause(19)))
1932
- ),
1933
- proof(
1934
- goal(fft8([1, -1, 1, -1, 1, -1, 1, -1], [c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(8, 0.0), c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0)])),
1935
- by(rule("fft8-numeric.pl", clause(17))),
1936
- bindings([binding("X0", 1), binding("X1", -1), binding("X2", 1), binding("X3", -1), binding("X4", 1), binding("X5", -1), binding("X6", 1), binding("X7", -1), binding("Y0", c(0, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0.0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("Y4", c(8, 0.0)), binding("Y5", c(0.0, 0.0)), binding("Y6", c(0.0, 0.0)), binding("Y7", c(0.0, 0.0)), binding("E0", c(4, 0.0)), binding("E1", c(0.0, 0.0)), binding("E2", c(0, 0.0)), binding("E3", c(0.0, 0.0)), binding("O0", c(-4, 0.0)), binding("O1", c(0.0, 0.0)), binding("O2", c(0, 0.0)), binding("O3", c(0.0, 0.0)), binding("W1", c(0.7071067811865476, -0.7071067811865476)), binding("W2", c(0.0, -1.0)), binding("W3", c(-0.7071067811865476, -0.7071067811865476)), binding("T1", c(0.0, 0.0)), binding("T2", c(0.0, 0.0)), binding("T3", c(0.0, 0.0))]),
1937
- uses([
1938
- proof(
1939
- goal(fft4([1, 1, 1, 1], [c(4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)])),
1940
- by(rule("fft8-numeric.pl", clause(16))),
1941
- bindings([binding("X0", 1), binding("X1", 1), binding("X2", 1), binding("X3", 1), binding("Y0", c(4, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("E0", c(2, 0.0)), binding("E1", c(0, 0.0)), binding("O0", c(2, 0.0)), binding("O1", c(0, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 0.0))]),
1942
- uses([
1943
- proof(
1944
- goal(fft2([1, 1], [c(2, 0.0), c(0, 0.0)])),
1945
- by(rule("fft8-numeric.pl", clause(15))),
1946
- bindings([binding("X0", 1), binding("X1", 1), binding("Y0", c(2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(1, 0.0))]),
1947
- uses([
1948
- proof(
1949
- goal(fft1([1], [c(1, 0.0)])),
1950
- by(fact("fft8-numeric.pl", clause(14))),
1951
- bindings([binding("X", 1)])
1952
- ),
1953
- proof(
1954
- goal(fft1([1], [c(1, 0.0)])),
1955
- by(fact("fft8-numeric.pl", clause(14))),
1956
- bindings([binding("X", 1)])
1957
- ),
1958
- proof(
1959
- goal(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0))),
1960
- by(rule("fft8-numeric.pl", clause(11))),
1961
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 2), binding("CI", 0.0)]),
1962
- uses([
1963
- proof(
1964
- goal(add(1, 1, 2)),
1965
- by(builtin(add, 3))
1966
- ),
1967
- proof(
1968
- goal(add(0.0, 0.0, 0.0)),
1969
- by(builtin(add, 3))
1970
- )
1971
- ])
1972
- ),
1973
- proof(
1974
- goal(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))),
1975
- by(rule("fft8-numeric.pl", clause(12))),
1976
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
1977
- uses([
1978
- proof(
1979
- goal(sub(1, 1, 0)),
1980
- by(builtin(sub, 3))
1981
- ),
1982
- proof(
1983
- goal(sub(0.0, 0.0, 0.0)),
1984
- by(builtin(sub, 3))
1985
- )
1986
- ])
1987
- )
1988
- ])
1989
- ),
1990
- proof(
1991
- goal(fft2([1, 1], [c(2, 0.0), c(0, 0.0)])),
1992
- by(rule("fft8-numeric.pl", clause(15))),
1993
- bindings([binding("X0", 1), binding("X1", 1), binding("Y0", c(2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(1, 0.0)), binding("O0", c(1, 0.0))]),
1994
- uses([
1995
- proof(
1996
- goal(fft1([1], [c(1, 0.0)])),
1997
- by(fact("fft8-numeric.pl", clause(14))),
1998
- bindings([binding("X", 1)])
1999
- ),
2000
- proof(
2001
- goal(fft1([1], [c(1, 0.0)])),
2002
- by(fact("fft8-numeric.pl", clause(14))),
2003
- bindings([binding("X", 1)])
2004
- ),
2005
- proof(
2006
- goal(c_add(c(1, 0.0), c(1, 0.0), c(2, 0.0))),
2007
- by(rule("fft8-numeric.pl", clause(11))),
2008
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 2), binding("CI", 0.0)]),
2009
- uses([
2010
- proof(
2011
- goal(add(1, 1, 2)),
2012
- by(builtin(add, 3))
2013
- ),
2014
- proof(
2015
- goal(add(0.0, 0.0, 0.0)),
2016
- by(builtin(add, 3))
2017
- )
2018
- ])
2019
- ),
2020
- proof(
2021
- goal(c_sub(c(1, 0.0), c(1, 0.0), c(0, 0.0))),
2022
- by(rule("fft8-numeric.pl", clause(12))),
2023
- bindings([binding("AR", 1), binding("AI", 0.0), binding("BR", 1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2024
- uses([
2025
- proof(
2026
- goal(sub(1, 1, 0)),
2027
- by(builtin(sub, 3))
2028
- ),
2029
- proof(
2030
- goal(sub(0.0, 0.0, 0.0)),
2031
- by(builtin(sub, 3))
2032
- )
2033
- ])
2034
- )
2035
- ])
2036
- ),
2037
- proof(
2038
- goal(w8(2, c(0.0, -1.0))),
2039
- by(fact("fft8-numeric.pl", clause(5)))
2040
- ),
2041
- proof(
2042
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
2043
- by(rule("fft8-numeric.pl", clause(13))),
2044
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
2045
- uses([
2046
- proof(
2047
- goal(mul(0.0, 0, 0.0)),
2048
- by(builtin(mul, 3))
2049
- ),
2050
- proof(
2051
- goal(mul(-1.0, 0.0, 0.0)),
2052
- by(builtin(mul, 3))
2053
- ),
2054
- proof(
2055
- goal(sub(0.0, 0.0, 0.0)),
2056
- by(builtin(sub, 3))
2057
- ),
2058
- proof(
2059
- goal(mul(0.0, 0.0, 0.0)),
2060
- by(builtin(mul, 3))
2061
- ),
2062
- proof(
2063
- goal(mul(-1.0, 0, 0.0)),
2064
- by(builtin(mul, 3))
2065
- ),
2066
- proof(
2067
- goal(add(0.0, 0.0, 0.0)),
2068
- by(builtin(add, 3))
2069
- )
2070
- ])
2071
- ),
2072
- proof(
2073
- goal(c_add(c(2, 0.0), c(2, 0.0), c(4, 0.0))),
2074
- by(rule("fft8-numeric.pl", clause(11))),
2075
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 2), binding("BI", 0.0), binding("CR", 4), binding("CI", 0.0)]),
2076
- uses([
2077
- proof(
2078
- goal(add(2, 2, 4)),
2079
- by(builtin(add, 3))
2080
- ),
2081
- proof(
2082
- goal(add(0.0, 0.0, 0.0)),
2083
- by(builtin(add, 3))
2084
- )
2085
- ])
2086
- ),
2087
- proof(
2088
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2089
- by(rule("fft8-numeric.pl", clause(11))),
2090
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2091
- uses([
2092
- proof(
2093
- goal(add(0, 0.0, 0.0)),
2094
- by(builtin(add, 3))
2095
- ),
2096
- proof(
2097
- goal(add(0.0, 0.0, 0.0)),
2098
- by(builtin(add, 3))
2099
- )
2100
- ])
2101
- ),
2102
- proof(
2103
- goal(c_sub(c(2, 0.0), c(2, 0.0), c(0, 0.0))),
2104
- by(rule("fft8-numeric.pl", clause(12))),
2105
- bindings([binding("AR", 2), binding("AI", 0.0), binding("BR", 2), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2106
- uses([
2107
- proof(
2108
- goal(sub(2, 2, 0)),
2109
- by(builtin(sub, 3))
2110
- ),
2111
- proof(
2112
- goal(sub(0.0, 0.0, 0.0)),
2113
- by(builtin(sub, 3))
2114
- )
2115
- ])
2116
- ),
2117
- proof(
2118
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2119
- by(rule("fft8-numeric.pl", clause(12))),
2120
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2121
- uses([
2122
- proof(
2123
- goal(sub(0, 0.0, 0.0)),
2124
- by(builtin(sub, 3))
2125
- ),
2126
- proof(
2127
- goal(sub(0.0, 0.0, 0.0)),
2128
- by(builtin(sub, 3))
2129
- )
2130
- ])
2131
- )
2132
- ])
2133
- ),
2134
- proof(
2135
- goal(fft4([-1, -1, -1, -1], [c(-4, 0.0), c(0.0, 0.0), c(0, 0.0), c(0.0, 0.0)])),
2136
- by(rule("fft8-numeric.pl", clause(16))),
2137
- bindings([binding("X0", -1), binding("X1", -1), binding("X2", -1), binding("X3", -1), binding("Y0", c(-4, 0.0)), binding("Y1", c(0.0, 0.0)), binding("Y2", c(0, 0.0)), binding("Y3", c(0.0, 0.0)), binding("E0", c(-2, 0.0)), binding("E1", c(0, 0.0)), binding("O0", c(-2, 0.0)), binding("O1", c(0, 0.0)), binding("W1", c(0.0, -1.0)), binding("T1", c(0.0, 0.0))]),
2138
- uses([
2139
- proof(
2140
- goal(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)])),
2141
- by(rule("fft8-numeric.pl", clause(15))),
2142
- bindings([binding("X0", -1), binding("X1", -1), binding("Y0", c(-2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(-1, 0.0)), binding("O0", c(-1, 0.0))]),
2143
- uses([
2144
- proof(
2145
- goal(fft1([-1], [c(-1, 0.0)])),
2146
- by(fact("fft8-numeric.pl", clause(14))),
2147
- bindings([binding("X", -1)])
2148
- ),
2149
- proof(
2150
- goal(fft1([-1], [c(-1, 0.0)])),
2151
- by(fact("fft8-numeric.pl", clause(14))),
2152
- bindings([binding("X", -1)])
2153
- ),
2154
- proof(
2155
- goal(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0))),
2156
- by(rule("fft8-numeric.pl", clause(11))),
2157
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", -2), binding("CI", 0.0)]),
2158
- uses([
2159
- proof(
2160
- goal(add(-1, -1, -2)),
2161
- by(builtin(add, 3))
2162
- ),
2163
- proof(
2164
- goal(add(0.0, 0.0, 0.0)),
2165
- by(builtin(add, 3))
2166
- )
2167
- ])
2168
- ),
2169
- proof(
2170
- goal(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))),
2171
- by(rule("fft8-numeric.pl", clause(12))),
2172
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2173
- uses([
2174
- proof(
2175
- goal(sub(-1, -1, 0)),
2176
- by(builtin(sub, 3))
2177
- ),
2178
- proof(
2179
- goal(sub(0.0, 0.0, 0.0)),
2180
- by(builtin(sub, 3))
2181
- )
2182
- ])
2183
- )
2184
- ])
2185
- ),
2186
- proof(
2187
- goal(fft2([-1, -1], [c(-2, 0.0), c(0, 0.0)])),
2188
- by(rule("fft8-numeric.pl", clause(15))),
2189
- bindings([binding("X0", -1), binding("X1", -1), binding("Y0", c(-2, 0.0)), binding("Y1", c(0, 0.0)), binding("E0", c(-1, 0.0)), binding("O0", c(-1, 0.0))]),
2190
- uses([
2191
- proof(
2192
- goal(fft1([-1], [c(-1, 0.0)])),
2193
- by(fact("fft8-numeric.pl", clause(14))),
2194
- bindings([binding("X", -1)])
2195
- ),
2196
- proof(
2197
- goal(fft1([-1], [c(-1, 0.0)])),
2198
- by(fact("fft8-numeric.pl", clause(14))),
2199
- bindings([binding("X", -1)])
2200
- ),
2201
- proof(
2202
- goal(c_add(c(-1, 0.0), c(-1, 0.0), c(-2, 0.0))),
2203
- by(rule("fft8-numeric.pl", clause(11))),
2204
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", -2), binding("CI", 0.0)]),
2205
- uses([
2206
- proof(
2207
- goal(add(-1, -1, -2)),
2208
- by(builtin(add, 3))
2209
- ),
2210
- proof(
2211
- goal(add(0.0, 0.0, 0.0)),
2212
- by(builtin(add, 3))
2213
- )
2214
- ])
2215
- ),
2216
- proof(
2217
- goal(c_sub(c(-1, 0.0), c(-1, 0.0), c(0, 0.0))),
2218
- by(rule("fft8-numeric.pl", clause(12))),
2219
- bindings([binding("AR", -1), binding("AI", 0.0), binding("BR", -1), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2220
- uses([
2221
- proof(
2222
- goal(sub(-1, -1, 0)),
2223
- by(builtin(sub, 3))
2224
- ),
2225
- proof(
2226
- goal(sub(0.0, 0.0, 0.0)),
2227
- by(builtin(sub, 3))
2228
- )
2229
- ])
2230
- )
2231
- ])
2232
- ),
2233
- proof(
2234
- goal(w8(2, c(0.0, -1.0))),
2235
- by(fact("fft8-numeric.pl", clause(5)))
2236
- ),
2237
- proof(
2238
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
2239
- by(rule("fft8-numeric.pl", clause(13))),
2240
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
2241
- uses([
2242
- proof(
2243
- goal(mul(0.0, 0, 0.0)),
2244
- by(builtin(mul, 3))
2245
- ),
2246
- proof(
2247
- goal(mul(-1.0, 0.0, 0.0)),
2248
- by(builtin(mul, 3))
2249
- ),
2250
- proof(
2251
- goal(sub(0.0, 0.0, 0.0)),
2252
- by(builtin(sub, 3))
2253
- ),
2254
- proof(
2255
- goal(mul(0.0, 0.0, 0.0)),
2256
- by(builtin(mul, 3))
2257
- ),
2258
- proof(
2259
- goal(mul(-1.0, 0, 0.0)),
2260
- by(builtin(mul, 3))
2261
- ),
2262
- proof(
2263
- goal(add(0.0, 0.0, 0.0)),
2264
- by(builtin(add, 3))
2265
- )
2266
- ])
2267
- ),
2268
- proof(
2269
- goal(c_add(c(-2, 0.0), c(-2, 0.0), c(-4, 0.0))),
2270
- by(rule("fft8-numeric.pl", clause(11))),
2271
- bindings([binding("AR", -2), binding("AI", 0.0), binding("BR", -2), binding("BI", 0.0), binding("CR", -4), binding("CI", 0.0)]),
2272
- uses([
2273
- proof(
2274
- goal(add(-2, -2, -4)),
2275
- by(builtin(add, 3))
2276
- ),
2277
- proof(
2278
- goal(add(0.0, 0.0, 0.0)),
2279
- by(builtin(add, 3))
2280
- )
2281
- ])
2282
- ),
2283
- proof(
2284
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2285
- by(rule("fft8-numeric.pl", clause(11))),
2286
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2287
- uses([
2288
- proof(
2289
- goal(add(0, 0.0, 0.0)),
2290
- by(builtin(add, 3))
2291
- ),
2292
- proof(
2293
- goal(add(0.0, 0.0, 0.0)),
2294
- by(builtin(add, 3))
2295
- )
2296
- ])
2297
- ),
2298
- proof(
2299
- goal(c_sub(c(-2, 0.0), c(-2, 0.0), c(0, 0.0))),
2300
- by(rule("fft8-numeric.pl", clause(12))),
2301
- bindings([binding("AR", -2), binding("AI", 0.0), binding("BR", -2), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2302
- uses([
2303
- proof(
2304
- goal(sub(-2, -2, 0)),
2305
- by(builtin(sub, 3))
2306
- ),
2307
- proof(
2308
- goal(sub(0.0, 0.0, 0.0)),
2309
- by(builtin(sub, 3))
2310
- )
2311
- ])
2312
- ),
2313
- proof(
2314
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2315
- by(rule("fft8-numeric.pl", clause(12))),
2316
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2317
- uses([
2318
- proof(
2319
- goal(sub(0, 0.0, 0.0)),
2320
- by(builtin(sub, 3))
2321
- ),
2322
- proof(
2323
- goal(sub(0.0, 0.0, 0.0)),
2324
- by(builtin(sub, 3))
2325
- )
2326
- ])
2327
- )
2328
- ])
2329
- ),
2330
- proof(
2331
- goal(w8(1, c(0.7071067811865476, -0.7071067811865476))),
2332
- by(fact("fft8-numeric.pl", clause(4)))
2333
- ),
2334
- proof(
2335
- goal(w8(2, c(0.0, -1.0))),
2336
- by(fact("fft8-numeric.pl", clause(5)))
2337
- ),
2338
- proof(
2339
- goal(w8(3, c(-0.7071067811865476, -0.7071067811865476))),
2340
- by(fact("fft8-numeric.pl", clause(6)))
2341
- ),
2342
- proof(
2343
- goal(c_mul(c(0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0))),
2344
- by(rule("fft8-numeric.pl", clause(13))),
2345
- bindings([binding("AR", 0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
2346
- uses([
2347
- proof(
2348
- goal(mul(0.7071067811865476, 0.0, 0.0)),
2349
- by(builtin(mul, 3))
2350
- ),
2351
- proof(
2352
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2353
- by(builtin(mul, 3))
2354
- ),
2355
- proof(
2356
- goal(sub(0.0, 0.0, 0.0)),
2357
- by(builtin(sub, 3))
2358
- ),
2359
- proof(
2360
- goal(mul(0.7071067811865476, 0.0, 0.0)),
2361
- by(builtin(mul, 3))
2362
- ),
2363
- proof(
2364
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2365
- by(builtin(mul, 3))
2366
- ),
2367
- proof(
2368
- goal(add(0.0, 0.0, 0.0)),
2369
- by(builtin(add, 3))
2370
- )
2371
- ])
2372
- ),
2373
- proof(
2374
- goal(c_mul(c(0.0, -1.0), c(0, 0.0), c(0.0, 0.0))),
2375
- by(rule("fft8-numeric.pl", clause(13))),
2376
- bindings([binding("AR", 0.0), binding("AI", -1.0), binding("BR", 0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
2377
- uses([
2378
- proof(
2379
- goal(mul(0.0, 0, 0.0)),
2380
- by(builtin(mul, 3))
2381
- ),
2382
- proof(
2383
- goal(mul(-1.0, 0.0, 0.0)),
2384
- by(builtin(mul, 3))
2385
- ),
2386
- proof(
2387
- goal(sub(0.0, 0.0, 0.0)),
2388
- by(builtin(sub, 3))
2389
- ),
2390
- proof(
2391
- goal(mul(0.0, 0.0, 0.0)),
2392
- by(builtin(mul, 3))
2393
- ),
2394
- proof(
2395
- goal(mul(-1.0, 0, 0.0)),
2396
- by(builtin(mul, 3))
2397
- ),
2398
- proof(
2399
- goal(add(0.0, 0.0, 0.0)),
2400
- by(builtin(add, 3))
2401
- )
2402
- ])
2403
- ),
2404
- proof(
2405
- goal(c_mul(c(-0.7071067811865476, -0.7071067811865476), c(0.0, 0.0), c(0.0, 0.0))),
2406
- by(rule("fft8-numeric.pl", clause(13))),
2407
- bindings([binding("AR", -0.7071067811865476), binding("AI", -0.7071067811865476), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0), binding("AC", 0.0), binding("BD", 0.0), binding("AD", 0.0), binding("BC", 0.0)]),
2408
- uses([
2409
- proof(
2410
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2411
- by(builtin(mul, 3))
2412
- ),
2413
- proof(
2414
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2415
- by(builtin(mul, 3))
2416
- ),
2417
- proof(
2418
- goal(sub(0.0, 0.0, 0.0)),
2419
- by(builtin(sub, 3))
2420
- ),
2421
- proof(
2422
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2423
- by(builtin(mul, 3))
2424
- ),
2425
- proof(
2426
- goal(mul(-0.7071067811865476, 0.0, 0.0)),
2427
- by(builtin(mul, 3))
2428
- ),
2429
- proof(
2430
- goal(add(0.0, 0.0, 0.0)),
2431
- by(builtin(add, 3))
2432
- )
2433
- ])
2434
- ),
2435
- proof(
2436
- goal(c_add(c(4, 0.0), c(-4, 0.0), c(0, 0.0))),
2437
- by(rule("fft8-numeric.pl", clause(11))),
2438
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 0), binding("CI", 0.0)]),
2439
- uses([
2440
- proof(
2441
- goal(add(4, -4, 0)),
2442
- by(builtin(add, 3))
2443
- ),
2444
- proof(
2445
- goal(add(0.0, 0.0, 0.0)),
2446
- by(builtin(add, 3))
2447
- )
2448
- ])
2449
- ),
2450
- proof(
2451
- goal(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2452
- by(rule("fft8-numeric.pl", clause(11))),
2453
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2454
- uses([
2455
- proof(
2456
- goal(add(0.0, 0.0, 0.0)),
2457
- by(builtin(add, 3))
2458
- ),
2459
- proof(
2460
- goal(add(0.0, 0.0, 0.0)),
2461
- by(builtin(add, 3))
2462
- )
2463
- ])
2464
- ),
2465
- proof(
2466
- goal(c_add(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2467
- by(rule("fft8-numeric.pl", clause(11))),
2468
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2469
- uses([
2470
- proof(
2471
- goal(add(0, 0.0, 0.0)),
2472
- by(builtin(add, 3))
2473
- ),
2474
- proof(
2475
- goal(add(0.0, 0.0, 0.0)),
2476
- by(builtin(add, 3))
2477
- )
2478
- ])
2479
- ),
2480
- proof(
2481
- goal(c_add(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2482
- by(rule("fft8-numeric.pl", clause(11))),
2483
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2484
- uses([
2485
- proof(
2486
- goal(add(0.0, 0.0, 0.0)),
2487
- by(builtin(add, 3))
2488
- ),
2489
- proof(
2490
- goal(add(0.0, 0.0, 0.0)),
2491
- by(builtin(add, 3))
2492
- )
2493
- ])
2494
- ),
2495
- proof(
2496
- goal(c_sub(c(4, 0.0), c(-4, 0.0), c(8, 0.0))),
2497
- by(rule("fft8-numeric.pl", clause(12))),
2498
- bindings([binding("AR", 4), binding("AI", 0.0), binding("BR", -4), binding("BI", 0.0), binding("CR", 8), binding("CI", 0.0)]),
2499
- uses([
2500
- proof(
2501
- goal(sub(4, -4, 8)),
2502
- by(builtin(sub, 3))
2503
- ),
2504
- proof(
2505
- goal(sub(0.0, 0.0, 0.0)),
2506
- by(builtin(sub, 3))
2507
- )
2508
- ])
2509
- ),
2510
- proof(
2511
- goal(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2512
- by(rule("fft8-numeric.pl", clause(12))),
2513
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2514
- uses([
2515
- proof(
2516
- goal(sub(0.0, 0.0, 0.0)),
2517
- by(builtin(sub, 3))
2518
- ),
2519
- proof(
2520
- goal(sub(0.0, 0.0, 0.0)),
2521
- by(builtin(sub, 3))
2522
- )
2523
- ])
2524
- ),
2525
- proof(
2526
- goal(c_sub(c(0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2527
- by(rule("fft8-numeric.pl", clause(12))),
2528
- bindings([binding("AR", 0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2529
- uses([
2530
- proof(
2531
- goal(sub(0, 0.0, 0.0)),
2532
- by(builtin(sub, 3))
2533
- ),
2534
- proof(
2535
- goal(sub(0.0, 0.0, 0.0)),
2536
- by(builtin(sub, 3))
2537
- )
2538
- ])
2539
- ),
2540
- proof(
2541
- goal(c_sub(c(0.0, 0.0), c(0.0, 0.0), c(0.0, 0.0))),
2542
- by(rule("fft8-numeric.pl", clause(12))),
2543
- bindings([binding("AR", 0.0), binding("AI", 0.0), binding("BR", 0.0), binding("BI", 0.0), binding("CR", 0.0), binding("CI", 0.0)]),
2544
- uses([
2545
- proof(
2546
- goal(sub(0.0, 0.0, 0.0)),
2547
- by(builtin(sub, 3))
2548
- ),
2549
- proof(
2550
- goal(sub(0.0, 0.0, 0.0)),
2551
- by(builtin(sub, 3))
2552
- )
2553
- ])
2554
- )
2555
- ])
2556
- )
2557
- ])
2558
- )
2559
- ).
2560
-