Skip to content
import JaxLean.Stdlib
import examples.tensor_puzzles.generated.PuzzlesHeavisideset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.Heavisideunit.«2»a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ (if decide (a (⟨2, ⋯⟩, ()) = 0) = true then b (⟨2, ⋯⟩, ()) else if decide (a (⟨2, ⋯⟩, ()) > 0) = true then 1 else 0) =
if ⟨2, ⋯⟩ = 2 then
if decide (a (⟨2 + 1 * ↑0, ⋯⟩, ()) = 0) = true then b (⟨2 + 1 * ↑0, ⋯⟩, ())
else if decide (a (⟨2 + 1 * ↑0, ⋯⟩, ()) > 0) = true then 1 else 0
else
if ⟨2, ⋯⟩ = 1 then
if decide (a (⟨1 + 1 * ↑0, ⋯⟩, ()) = 0) = true then b (⟨1 + 1 * ↑0, ⋯⟩, ())
else if decide (a (⟨1 + 1 * ↑0, ⋯⟩, ()) > 0) = true then 1 else 0
else
if ⟨2, ⋯⟩ = 0 then
if decide (a (⟨0 + 1 * ↑0, ⋯⟩, ()) = 0) = true then b (⟨0 + 1 * ↑0, ⋯⟩, ())
else if decide (a (⟨0 + 1 * ↑0, ⋯⟩, ()) > 0) = true then 1 else 0
else 0
all_goals norm_num [Fin.ext_iff]unit.«2»a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ (if decide (a (⟨2, ⋯⟩, ()) = 0) = true then b (⟨2, ⋯⟩, ()) else if 0 < a (⟨2, ⋯⟩, ()) then 1 else 0) =
if a (⟨2, ⋯⟩, ()) = 0 then b (⟨2, ⋯⟩, ()) else if 0 < a (⟨2, ⋯⟩, ()) then 1 else 0
all_goals exact if_congr decide_eq_true_iff rfl rflAll goals completed! 🐙
theorem certificate (a : Tensor ℝ [3]) (b : Tensor ℝ [3]) :
Jaxpr.Program.eval (.cons a (.cons b .nil)) Array.heaviside_ir =
Jaxpr.Program.eval (.cons a (.cons b .nil)) Loop.heaviside_ir := bya:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Jaxpr.Program.eval (Jaxpr.Env.cons a (Jaxpr.Env.cons b Jaxpr.Env.nil)) Array.heaviside_ir =
Jaxpr.Program.eval (Jaxpr.Env.cons a (Jaxpr.Env.cons b Jaxpr.Env.nil)) Loop.heaviside_ir
rw [Array.heaviside_translation_correct,a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.heaviside a b = Jaxpr.Program.eval (Jaxpr.Env.cons a (Jaxpr.Env.cons b Jaxpr.Env.nil)) Loop.heaviside_ira:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.heaviside a b = Loop.heaviside a b Loop.heaviside_translation_correcta:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.heaviside a b = Loop.heaviside a ba:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.heaviside a b = Loop.heaviside a b]a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.heaviside a b = Loop.heaviside a b
exact matches_loop a bAll goals completed! 🐙end JaxLean.Puzzles.Heaviside