Skip to content
import JaxLean.Stdlib
import examples.tensor_puzzles.generated.PuzzlesCumsumset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.Cumsumtheorem matches_loop (a : Tensor ℝ [3]) :
Array.cumsum a = Loop.cumsum a := a:Tensor ℝ [3]⊢ Array.cumsum a = Loop.cumsum a
a:Tensor ℝ [3]i:Fin 3u:Index []⊢ Array.cumsum a (i, u) = Loop.cumsum a (i, u)
a:Tensor ℝ [3]i:Fin 3⊢ Array.cumsum a (i, PUnit.unit) = Loop.cumsum a (i, PUnit.unit)
a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.cumsum a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) = Loop.cumsum a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit)
a:Tensor ℝ [3]⊢ (if decide (↑2 ≥ ↑↑0) = true then a (0, ()) else 0) +
((if decide (↑2 ≥ ↑↑(Fin.succ 0)) = true then a (Fin.succ 0, ()) else 0) +
((if decide (↑2 ≥ ↑↑(Fin.succ 0).succ) = true then a ((Fin.succ 0).succ, ()) else 0) +
∑ x, if decide (↑2 ≥ ↑↑x.succ.succ.succ) = true then a (x.succ.succ.succ, ()) else 0)) =
if ⟨2, ⋯⟩ = 2 then 0 + a (⟨0 + 1 * ↑0, ⋯⟩, ()) + a (⟨1 + 1 * ↑0, ⋯⟩, ()) + a (⟨2 + 1 * ↑0, ⋯⟩, ())
else
if ⟨2, ⋯⟩ = 1 then 0 + a (⟨0 + 1 * ↑0, ⋯⟩, ()) + a (⟨1 + 1 * ↑0, ⋯⟩, ())
else if ⟨2, ⋯⟩ = 0 then 0 + a (⟨0 + 1 * ↑0, ⋯⟩, ()) else 0
all_goals a:Tensor ℝ [3]⊢ a (0, ()) + (a (1, ()) + a (2, ())) = a (0, ()) + a (1, ()) + a (⟨2, ⋯⟩, ())
all_goals a:Tensor ℝ [3]⊢ a (0, ()) + (a (1, ()) + a (2, ())) = a (0, ()) + a (1, ()) + a (2, ())
all_goals All goals completed! 🐙a:Tensor ℝ [3]⊢ Array.cumsum a = Loop.cumsum a
exact matches_loop aAll goals completed! 🐙end JaxLean.Puzzles.Cumsum