import JaxLean.Stdlib import examples.tensor_puzzles.generated.PuzzlesRollset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.Rolltheorem matches_loop (a : Tensor ℝ [3]) : Array.roll a = Loop.roll a := a:Tensor ℝ [3]⊢ Array.roll a = Loop.roll a a:Tensor ℝ [3]i:Fin 3u:Index []⊢ Array.roll a (i, u) = Loop.roll a (i, u) a:Tensor ℝ [3]i:Fin 3⊢ Array.roll a (i, PUnit.unit) = Loop.roll a (i, PUnit.unit) a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]⊢ Array.roll a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) = Loop.roll a ((fun i => i) ⟨2, ⋯⟩, PUnit.unit) All goals completed! 🐙a:Tensor ℝ [3]⊢ Array.roll a = Loop.roll a All goals completed! 🐙end JaxLean.Puzzles.Roll