Large Signal Model · Lean source
Section88ComparisonDirectPosOrientation.lean
Declared contract recorded Coverage and evidence
The cited release explicitly reports completion of its registered formal contract, under its exact hypotheses.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (2)
KomorebiLSM/Section88ComparisonDirectPosOrientation.lean344 lines
Original source path
Lean/KomorebiLSM/Section88ComparisonDirectPosOrientation.leanSkip declarations and read code
1 import KomorebiLSM.PerturbedOperatorFixture
2 import KomorebiLSM.RecordedBernsteinFixture
3
4 /-! Exact rational replay of robust_comparison_certificate.json: direct, chart 1, orientation. -/
5 set_option autoImplicit false
6 set_option maxRecDepth 4000
7 set_option maxHeartbeats 800000
8 namespace Komorebi.LSM.Section88ComparisonDirectPosOrientation
9 open TensorBernsteinCertificate RationalBernsteinMargin RationalLorentzMatrix
10 open PerturbedOperatorFixture RecordedBernsteinFixture
11 noncomputable section
12
13 def polynomial : Polynomial₂ := MvPolynomial.C (9/32 : ℚ)*MvPolynomial.X 0^0*MvPolynomial.X 1^0 +
14 MvPolynomial.C (9/32 : ℚ)*MvPolynomial.X 0^0*MvPolynomial.X 1^2 +
15 MvPolynomial.C (168021/160000 : ℚ)*MvPolynomial.X 0^1*MvPolynomial.X 1^0 +
16 MvPolynomial.C (-168021/160000 : ℚ)*MvPolynomial.X 0^1*MvPolynomial.X 1^2 +
17 MvPolynomial.C (251979/160000 : ℚ)*MvPolynomial.X 0^1*MvPolynomial.X 1^1 +
18 MvPolynomial.C (63/32 : ℚ)*MvPolynomial.X 0^2*MvPolynomial.X 1^0 +
19 MvPolynomial.C (63/32 : ℚ)*MvPolynomial.X 0^2*MvPolynomial.X 1^2
20
21 theorem polynomial_source : polynomial=orientationPolynomial (nominalComparison false) (1/16) false := by
22 apply MvPolynomial.funext
23 intro x
24 norm_num [polynomial,orientationPolynomial,orientationPolynomial,squareGapPolynomial,outputPolynomial,
25 liftPolynomial,denominatorPolynomial,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
26 ring
27
28 def cell_00 : Rectangle := ((square.quarter false false).quarter false false)
29 def leaf_00 : RecordedLeaf polynomial cell_00 := by
30 let c : Fin 3 → Fin 3 → ℚ := ![![(971979/160000 : ℚ),(515979/128000 : ℚ),(359979/128000 : ℚ)],![(2375937/640000 : ℚ),(1223937/512000 : ℚ),(809937/512000 : ℚ)],![(746979/320000 : ℚ),(380979/256000 : ℚ),(247479/256000 : ℚ)]]
31 refine ⟨⟨2,2,c,?_,?_⟩,(247479/256000 : ℚ),?_,?_,?_⟩
32 · decide +kernel
33 · apply MvPolynomial.funext
34 intro x
35 norm_num [Rectangle.localPolynomial,cell_00,Rectangle.quarter,Rectangle.half,
36 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
37 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
38 ring
39 · norm_num
40 · decide +kernel
41 · decide +kernel
42
43 def cell_01 : Rectangle := ((square.quarter false false).quarter false true)
44 def leaf_01 : RecordedLeaf polynomial cell_01 := by
45 let c : Fin 3 → Fin 3 → ℚ := ![![(359979/128000 : ℚ),(203979/128000 : ℚ),(191979/160000 : ℚ)],![(809937/512000 : ℚ),(395937/512000 : ℚ),(305937/640000 : ℚ)],![(247479/256000 : ℚ),(113979/256000 : ℚ),(79479/320000 : ℚ)]]
46 refine ⟨⟨2,2,c,?_,?_⟩,(79479/320000 : ℚ),?_,?_,?_⟩
47 · decide +kernel
48 · apply MvPolynomial.funext
49 intro x
50 norm_num [Rectangle.localPolynomial,cell_01,Rectangle.quarter,Rectangle.half,
51 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
52 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
53 ring
54 · norm_num
55 · decide +kernel
56 · decide +kernel
57
58 def cell_02 : Rectangle := ((square.quarter false false).quarter true false)
59 def leaf_02 : RecordedLeaf polynomial cell_02 := by
60 let c : Fin 3 → Fin 3 → ℚ := ![![(746979/320000 : ℚ),(380979/256000 : ℚ),(247479/256000 : ℚ)],![(611979/640000 : ℚ),(299979/512000 : ℚ),(179979/512000 : ℚ)],![(9/16 : ℚ),(27/64 : ℚ),(45/128 : ℚ)]]
61 refine ⟨⟨2,2,c,?_,?_⟩,(179979/512000 : ℚ),?_,?_,?_⟩
62 · decide +kernel
63 · apply MvPolynomial.funext
64 intro x
65 norm_num [Rectangle.localPolynomial,cell_02,Rectangle.quarter,Rectangle.half,
66 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
67 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
68 ring
69 · norm_num
70 · decide +kernel
71 · decide +kernel
72
73 def cell_03 : Rectangle := ((square.quarter false false).quarter true true)
74 def leaf_03 : RecordedLeaf polynomial cell_03 := by
75 let c : Fin 3 → Fin 3 → ℚ := ![![(247479/256000 : ℚ),(113979/256000 : ℚ),(79479/320000 : ℚ)],![(179979/512000 : ℚ),(59979/512000 : ℚ),(11979/640000 : ℚ)],![(45/128 : ℚ),(9/32 : ℚ),(9/32 : ℚ)]]
76 refine ⟨⟨2,2,c,?_,?_⟩,(11979/640000 : ℚ),?_,?_,?_⟩
77 · decide +kernel
78 · apply MvPolynomial.funext
79 intro x
80 norm_num [Rectangle.localPolynomial,cell_03,Rectangle.quarter,Rectangle.half,
81 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
82 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
83 ring
84 · norm_num
85 · decide +kernel
86 · decide +kernel
87
88 def cell_10 : Rectangle := ((square.quarter false true).quarter false false)
89 def leaf_10 : RecordedLeaf polynomial cell_10 := by
90 let c : Fin 3 → Fin 3 → ℚ := ![![(191979/160000 : ℚ),(515937/640000 : ℚ),(791979/640000 : ℚ)],![(305937/640000 : ℚ),(467811/2560000 : ℚ),(1025937/2560000 : ℚ)],![(79479/320000 : ℚ),(65937/1280000 : ℚ),(229479/1280000 : ℚ)]]
91 refine ⟨⟨2,2,c,?_,?_⟩,(65937/1280000 : ℚ),?_,?_,?_⟩
92 · decide +kernel
93 · apply MvPolynomial.funext
94 intro x
95 norm_num [Rectangle.localPolynomial,cell_10,Rectangle.quarter,Rectangle.half,
96 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
97 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
98 ring
99 · norm_num
100 · decide +kernel
101 · decide +kernel
102
103 def cell_11 : Rectangle := ((square.quarter false true).quarter false true)
104 def leaf_11 : RecordedLeaf polynomial cell_11 := by
105 let c : Fin 3 → Fin 3 → ℚ := ![![(791979/640000 : ℚ),(1068021/640000 : ℚ),(468021/160000 : ℚ)],![(1025937/2560000 : ℚ),(1584063/2560000 : ℚ),(864063/640000 : ℚ)],![(229479/1280000 : ℚ),(393021/1280000 : ℚ),(243021/320000 : ℚ)]]
106 refine ⟨⟨2,2,c,?_,?_⟩,(229479/1280000 : ℚ),?_,?_,?_⟩
107 · decide +kernel
108 · apply MvPolynomial.funext
109 intro x
110 norm_num [Rectangle.localPolynomial,cell_11,Rectangle.quarter,Rectangle.half,
111 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
112 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
113 ring
114 · norm_num
115 · decide +kernel
116 · decide +kernel
117
118 def cell_120 : Rectangle := (((square.quarter false true).quarter true false).quarter false false)
119 def leaf_120 : RecordedLeaf polynomial cell_120 := by
120 let c : Fin 3 → Fin 3 → ℚ := ![![(79479/320000 : ℚ),(383853/2560000 : ℚ),(679269/5120000 : ℚ)],![(170937/1280000 : ℚ),(611559/10240000 : ℚ),(890307/20480000 : ℚ)],![(90729/640000 : ℚ),(473853/5120000 : ℚ),(870519/10240000 : ℚ)]]
121 refine ⟨⟨2,2,c,?_,?_⟩,(890307/20480000 : ℚ),?_,?_,?_⟩
122 · decide +kernel
123 · apply MvPolynomial.funext
124 intro x
125 norm_num [Rectangle.localPolynomial,cell_120,Rectangle.quarter,Rectangle.half,
126 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
127 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
128 ring
129 · norm_num
130 · decide +kernel
131 · decide +kernel
132
133 def cell_121 : Rectangle := (((square.quarter false true).quarter true false).quarter false true)
134 def leaf_121 : RecordedLeaf polynomial cell_121 := by
135 let c : Fin 3 → Fin 3 → ℚ := ![![(679269/5120000 : ℚ),(36927/320000 : ℚ),(229479/1280000 : ℚ)],![(890307/20480000 : ℚ),(69687/2560000 : ℚ),(350937/5120000 : ℚ)],![(870519/10240000 : ℚ),(198333/2560000 : ℚ),(285729/2560000 : ℚ)]]
136 refine ⟨⟨2,2,c,?_,?_⟩,(69687/2560000 : ℚ),?_,?_,?_⟩
137 · decide +kernel
138 · apply MvPolynomial.funext
139 intro x
140 norm_num [Rectangle.localPolynomial,cell_121,Rectangle.quarter,Rectangle.half,
141 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
142 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
143 ring
144 · norm_num
145 · decide +kernel
146 · decide +kernel
147
148 def cell_122 : Rectangle := (((square.quarter false true).quarter true false).quarter true false)
149 def leaf_122 : RecordedLeaf polynomial cell_122 := by
150 let c : Fin 3 → Fin 3 → ℚ := ![![(90729/640000 : ℚ),(473853/5120000 : ℚ),(870519/10240000 : ℚ)],![(191979/1280000 : ℚ),(1283853/10240000 : ℚ),(2591769/20480000 : ℚ)],![(9/32 : ℚ),(9/32 : ℚ),(153/512 : ℚ)]]
151 refine ⟨⟨2,2,c,?_,?_⟩,(870519/10240000 : ℚ),?_,?_,?_⟩
152 · decide +kernel
153 · apply MvPolynomial.funext
154 intro x
155 norm_num [Rectangle.localPolynomial,cell_122,Rectangle.quarter,Rectangle.half,
156 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
157 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
158 ring
159 · norm_num
160 · decide +kernel
161 · decide +kernel
162
163 def cell_123 : Rectangle := (((square.quarter false true).quarter true false).quarter true true)
164 def leaf_123 : RecordedLeaf polynomial cell_123 := by
165 let c : Fin 3 → Fin 3 → ℚ := ![![(870519/10240000 : ℚ),(198333/2560000 : ℚ),(285729/2560000 : ℚ)],![(2591769/20480000 : ℚ),(326979/2560000 : ℚ),(791979/5120000 : ℚ)],![(153/512 : ℚ),(81/256 : ℚ),(45/128 : ℚ)]]
166 refine ⟨⟨2,2,c,?_,?_⟩,(198333/2560000 : ℚ),?_,?_,?_⟩
167 · decide +kernel
168 · apply MvPolynomial.funext
169 intro x
170 norm_num [Rectangle.localPolynomial,cell_123,Rectangle.quarter,Rectangle.half,
171 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
172 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
173 ring
174 · norm_num
175 · decide +kernel
176 · decide +kernel
177
178 def cell_130 : Rectangle := (((square.quarter false true).quarter true true).quarter false false)
179 def leaf_130 : RecordedLeaf polynomial cell_130 := by
180 let c : Fin 3 → Fin 3 → ℚ := ![![(229479/1280000 : ℚ),(249/1024 : ℚ),(397521/1024000 : ℚ)],![(350937/5120000 : ℚ),(225/2048 : ℚ),(855063/4096000 : ℚ)],![(285729/2560000 : ℚ),(597/4096 : ℚ),(453771/2048000 : ℚ)]]
181 refine ⟨⟨2,2,c,?_,?_⟩,(350937/5120000 : ℚ),?_,?_,?_⟩
182 · decide +kernel
183 · apply MvPolynomial.funext
184 intro x
185 norm_num [Rectangle.localPolynomial,cell_130,Rectangle.quarter,Rectangle.half,
186 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
187 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
188 ring
189 · norm_num
190 · decide +kernel
191 · decide +kernel
192
193 def cell_131 : Rectangle := (((square.quarter false true).quarter true true).quarter false true)
194 def leaf_131 : RecordedLeaf polynomial cell_131 := by
195 let c : Fin 3 → Fin 3 → ℚ := ![![(397521/1024000 : ℚ),(273021/512000 : ℚ),(243021/320000 : ℚ)],![(855063/4096000 : ℚ),(630063/2048000 : ℚ),(594063/1280000 : ℚ)],![(453771/2048000 : ℚ),(304521/1024000 : ℚ),(265521/640000 : ℚ)]]
196 refine ⟨⟨2,2,c,?_,?_⟩,(855063/4096000 : ℚ),?_,?_,?_⟩
197 · decide +kernel
198 · apply MvPolynomial.funext
199 intro x
200 norm_num [Rectangle.localPolynomial,cell_131,Rectangle.quarter,Rectangle.half,
201 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
202 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
203 ring
204 · norm_num
205 · decide +kernel
206 · decide +kernel
207
208 def cell_132 : Rectangle := (((square.quarter false true).quarter true true).quarter true false)
209 def leaf_132 : RecordedLeaf polynomial cell_132 := by
210 let c : Fin 3 → Fin 3 → ℚ := ![![(285729/2560000 : ℚ),(597/4096 : ℚ),(453771/2048000 : ℚ)],![(791979/5120000 : ℚ),(93/512 : ℚ),(960021/4096000 : ℚ)],![(45/128 : ℚ),(99/256 : ℚ),(225/512 : ℚ)]]
211 refine ⟨⟨2,2,c,?_,?_⟩,(285729/2560000 : ℚ),?_,?_,?_⟩
212 · decide +kernel
213 · apply MvPolynomial.funext
214 intro x
215 norm_num [Rectangle.localPolynomial,cell_132,Rectangle.quarter,Rectangle.half,
216 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
217 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
218 ring
219 · norm_num
220 · decide +kernel
221 · decide +kernel
222
223 def cell_133 : Rectangle := (((square.quarter false true).quarter true true).quarter true true)
224 def leaf_133 : RecordedLeaf polynomial cell_133 := by
225 let c : Fin 3 → Fin 3 → ℚ := ![![(453771/2048000 : ℚ),(304521/1024000 : ℚ),(265521/640000 : ℚ)],![(960021/4096000 : ℚ),(588021/2048000 : ℚ),(468021/1280000 : ℚ)],![(225/512 : ℚ),(63/128 : ℚ),(9/16 : ℚ)]]
226 refine ⟨⟨2,2,c,?_,?_⟩,(453771/2048000 : ℚ),?_,?_,?_⟩
227 · decide +kernel
228 · apply MvPolynomial.funext
229 intro x
230 norm_num [Rectangle.localPolynomial,cell_133,Rectangle.quarter,Rectangle.half,
231 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
232 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
233 ring
234 · norm_num
235 · decide +kernel
236 · decide +kernel
237
238 def cell_20 : Rectangle := ((square.quarter true false).quarter false false)
239 def leaf_20 : RecordedLeaf polynomial cell_20 := by
240 let c : Fin 3 → Fin 3 → ℚ := ![![(9/16 : ℚ),(27/64 : ℚ),(45/128 : ℚ)],![(108021/640000 : ℚ),(132021/512000 : ℚ),(180021/512000 : ℚ)],![(243021/320000 : ℚ),(213021/256000 : ℚ),(247521/256000 : ℚ)]]
241 refine ⟨⟨2,2,c,?_,?_⟩,(108021/640000 : ℚ),?_,?_,?_⟩
242 · decide +kernel
243 · apply MvPolynomial.funext
244 intro x
245 norm_num [Rectangle.localPolynomial,cell_20,Rectangle.quarter,Rectangle.half,
246 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
247 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
248 ring
249 · norm_num
250 · decide +kernel
251 · decide +kernel
252
253 def cell_21 : Rectangle := ((square.quarter true false).quarter false true)
254 def leaf_21 : RecordedLeaf polynomial cell_21 := by
255 let c : Fin 3 → Fin 3 → ℚ := ![![(45/128 : ℚ),(9/32 : ℚ),(9/32 : ℚ)],![(180021/512000 : ℚ),(228021/512000 : ℚ),(348021/640000 : ℚ)],![(247521/256000 : ℚ),(282021/256000 : ℚ),(415521/320000 : ℚ)]]
256 refine ⟨⟨2,2,c,?_,?_⟩,(9/32 : ℚ),?_,?_,?_⟩
257 · decide +kernel
258 · apply MvPolynomial.funext
259 intro x
260 norm_num [Rectangle.localPolynomial,cell_21,Rectangle.quarter,Rectangle.half,
261 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
262 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
263 ring
264 · norm_num
265 · decide +kernel
266 · decide +kernel
267
268 def cell_22 : Rectangle := ((square.quarter true false).quarter true false)
269 def leaf_22 : RecordedLeaf polynomial cell_22 := by
270 let c : Fin 3 → Fin 3 → ℚ := ![![(243021/320000 : ℚ),(213021/256000 : ℚ),(247521/256000 : ℚ)],![(864063/640000 : ℚ),(720063/512000 : ℚ),(810063/512000 : ℚ)],![(468021/160000 : ℚ),(348021/128000 : ℚ),(360021/128000 : ℚ)]]
271 refine ⟨⟨2,2,c,?_,?_⟩,(243021/320000 : ℚ),?_,?_,?_⟩
272 · decide +kernel
273 · apply MvPolynomial.funext
274 intro x
275 norm_num [Rectangle.localPolynomial,cell_22,Rectangle.quarter,Rectangle.half,
276 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
277 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
278 ring
279 · norm_num
280 · decide +kernel
281 · decide +kernel
282
283 def cell_23 : Rectangle := ((square.quarter true false).quarter true true)
284 def leaf_23 : RecordedLeaf polynomial cell_23 := by
285 let c : Fin 3 → Fin 3 → ℚ := ![![(247521/256000 : ℚ),(282021/256000 : ℚ),(415521/320000 : ℚ)],![(810063/512000 : ℚ),(900063/512000 : ℚ),(1314063/640000 : ℚ)],![(360021/128000 : ℚ),(372021/128000 : ℚ),(528021/160000 : ℚ)]]
286 refine ⟨⟨2,2,c,?_,?_⟩,(247521/256000 : ℚ),?_,?_,?_⟩
287 · decide +kernel
288 · apply MvPolynomial.funext
289 intro x
290 norm_num [Rectangle.localPolynomial,cell_23,Rectangle.quarter,Rectangle.half,
291 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
292 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
293 ring
294 · norm_num
295 · decide +kernel
296 · decide +kernel
297
298 def cell_3 : Rectangle := (square.quarter true true)
299 def leaf_3 : RecordedLeaf polynomial cell_3 := by
300 let c : Fin 3 → Fin 3 → ℚ := ![![(9/32 : ℚ),(9/32 : ℚ),(9/16 : ℚ)],![(258021/320000 : ℚ),(768021/640000 : ℚ),(431979/320000 : ℚ)],![(528021/160000 : ℚ),(1308021/320000 : ℚ),(971979/160000 : ℚ)]]
301 refine ⟨⟨2,2,c,?_,?_⟩,(9/32 : ℚ),?_,?_,?_⟩
302 · decide +kernel
303 · apply MvPolynomial.funext
304 intro x
305 norm_num [Rectangle.localPolynomial,cell_3,Rectangle.quarter,Rectangle.half,
306 Rectangle.lower,Rectangle.upper,Rectangle.width,square,polynomial,c,tensorPolynomial,
307 basisPolynomial,Nat.choose,Fin.sum_univ_succ,Matrix.cons_val_two,Matrix.cons_val_three,Matrix.cons_val_four]
308 ring
309 · norm_num
310 · decide +kernel
311 · decide +kernel
312
313 def witness : SubdivisionWitness polynomial square :=
314 .of_quarters (fun
315 | false,false => .of_quarters (fun
316 | false,false => .leaf leaf_00.certificate
317 | false,true => .leaf leaf_01.certificate
318 | true,false => .leaf leaf_02.certificate
319 | true,true => .leaf leaf_03.certificate)
320 | false,true => .of_quarters (fun
321 | false,false => .leaf leaf_10.certificate
322 | false,true => .leaf leaf_11.certificate
323 | true,false => .of_quarters (fun
324 | false,false => .leaf leaf_120.certificate
325 | false,true => .leaf leaf_121.certificate
326 | true,false => .leaf leaf_122.certificate
327 | true,true => .leaf leaf_123.certificate)
328 | true,true => .of_quarters (fun
329 | false,false => .leaf leaf_130.certificate
330 | false,true => .leaf leaf_131.certificate
331 | true,false => .leaf leaf_132.certificate
332 | true,true => .leaf leaf_133.certificate))
333 | true,false => .of_quarters (fun
334 | false,false => .leaf leaf_20.certificate
335 | false,true => .leaf leaf_21.certificate
336 | true,false => .leaf leaf_22.certificate
337 | true,true => .leaf leaf_23.certificate)
338 | true,true => .leaf leaf_3.certificate)
339
340 def certifiedWitness : SubdivisionWitness (orientationPolynomial (nominalComparison false) (1/16) false) square :=
341 polynomial_source ▸ witness
342
343 end
344 end Komorebi.LSM.Section88ComparisonDirectPosOrientation
Original file and source record
This copy matches the recorded source file. Its publication here does not change the work’s review status.
SHA-256: 51ffae2e2640d8ecf2acf6ce8858fd58c616f9d717a0cf098136bb002e4942cb