Skip to content

Instantly share code, notes, and snippets.

@saulshanabrook
Created February 5, 2026 18:27
Show Gist options
  • Select an option

  • Save saulshanabrook/ad7c0a40a0d93c461be128d46cf5df2d to your computer and use it in GitHub Desktop.

Select an option

Save saulshanabrook/ad7c0a40a0d93c461be128d46cf5df2d to your computer and use it in GitHub Desktop.
(sort egglog.exp.array_api.RecursiveValue)
(sort egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_NDArray_to_recursive_value (egglog.exp.array_api.NDArray) egglog.exp.array_api.RecursiveValue)
(constructor egglog_exp_array_api_vecdot (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray :unextractable)
(constructor egglog_exp_array_api_NDArray___init__ (egglog.exp.array_api.RecursiveValue) egglog.exp.array_api.NDArray)
(sort egglog.builtins.Vec[egglog.exp.array_api.RecursiveValue] (Vec egglog.exp.array_api.RecursiveValue))
(constructor egglog_exp_array_api_RecursiveValue_vec (egglog.builtins.Vec[egglog.exp.array_api.RecursiveValue]) egglog.exp.array_api.RecursiveValue)
(sort egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_RecursiveValue___init__ (egglog.exp.array_api.Value) egglog.exp.array_api.RecursiveValue)
(sort egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_Value_from_int (egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_Int___init__ (i64) egglog.exp.array_api.Int)
(let $__expr_1598708161566475080 (egglog_exp_array_api_NDArray_to_recursive_value (egglog_exp_array_api_vecdot (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue_vec (vec-of (egglog_exp_array_api_RecursiveValue_vec (vec-of (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ 1))))) (egglog_exp_array_api_RecursiveValue_vec (vec-of (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ 3)))))))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue_vec (vec-of (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ 3)))))))))
(ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.TupleValue)
(sort egglog.exp.array_api.TupleInt)
(constructor egglog_exp_array_api_TupleValue___getitem__ (egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_TupleInt___getitem__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(constructor _tv-egglog_exp_array_api_TupleValue__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue___getitem____tv__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0___ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(rewrite (_tv-egglog_exp_array_api_TupleValue__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue___getitem____tv__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0___ _tv _idx) (egglog_exp_array_api_TupleValue___getitem__ _tv (egglog_exp_array_api_TupleInt___getitem__ _idx (egglog_exp_array_api_Int___init__ 0))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_from_tuple_value (egglog.exp.array_api.TupleValue) egglog.exp.array_api.NDArray)
(sort egglog.exp.array_api.DType)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt] (UnstableFn (egglog.exp.array_api.TupleInt ) egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_NDArray_fn (egglog.exp.array_api.TupleInt egglog.exp.array_api.DType egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt]) egglog.exp.array_api.NDArray)
(sort egglog.builtins.Vec[egglog.exp.array_api.Int] (Vec egglog.exp.array_api.Int))
(constructor egglog_exp_array_api_TupleInt___init__ (egglog.builtins.Vec[egglog.exp.array_api.Int]) egglog.exp.array_api.TupleInt)
(constructor egglog_exp_array_api_TupleValue_length (egglog.exp.array_api.TupleValue) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_Value_dtype (egglog.exp.array_api.Value) egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_NDArray_from_tuple_value _tv) (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt___init__ (vec-of (egglog_exp_array_api_TupleValue_length _tv))) (egglog_exp_array_api_Value_dtype (egglog_exp_array_api_TupleValue___getitem__ _tv (egglog_exp_array_api_Int___init__ 0))) (unstable-fn "_tv-egglog_exp_array_api_TupleValue__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue___getitem____tv__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0___" _tv)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_ndim (egglog.exp.array_api.NDArray) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_TupleInt_length (egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_NDArray_shape (egglog.exp.array_api.NDArray) egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_NDArray_ndim _self) (egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_NDArray_shape _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_index (egglog.exp.array_api.NDArray egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(constructor _self-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt___init____vec-of__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___1____egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0_____ (egglog.exp.array_api.NDArray egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(rewrite (_self-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt___init____vec-of__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___1____egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0_____ _self _idx) (egglog_exp_array_api_NDArray_index _self (egglog_exp_array_api_TupleInt___init__ (vec-of (egglog_exp_array_api_TupleInt___getitem__ _idx (egglog_exp_array_api_Int___init__ 1)) (egglog_exp_array_api_TupleInt___getitem__ _idx (egglog_exp_array_api_Int___init__ 0))))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_T (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_NDArray_dtype (egglog.exp.array_api.NDArray) egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_NDArray_T _self) (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt___init__ (vec-of (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_NDArray_shape _self) (egglog_exp_array_api_Int___init__ 1)) (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_NDArray_shape _self) (egglog_exp_array_api_Int___init__ 0)))) (egglog_exp_array_api_NDArray_dtype _self) (unstable-fn "_self-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt___init____vec-of__egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___1____egglog_exp_array_api_TupleInt___getitem____idx__egglog_exp_array_api_Int___init___0_____" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_NDArray__i (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(rewrite (_i-egglog_exp_array_api_NDArray__i _i) _i :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.TupleNDArray)
(constructor egglog_exp_array_api_TupleNDArray___getitem__ (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(constructor _self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j_ (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(rewrite (_self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j_ _self _j) (egglog_exp_array_api_TupleNDArray___getitem__ _self _j) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.Boolean)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray] (UnstableFn () egglog.exp.array_api.NDArray))
(constructor egglog_exp_array_api_NDArray_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray] egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray]) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Int___eq__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(constructor egglog_exp_array_api_TupleNDArray_length (egglog.exp.array_api.TupleNDArray) egglog.exp.array_api.Int)
(constructor _self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_NDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___i-egglog_exp_array_api_NDArray__i___i___unstable-fn___self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j____self__j__ (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.NDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(rewrite (_self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_NDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___i-egglog_exp_array_api_NDArray__i___i___unstable-fn___self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j____self__j__ _self _i _j) (egglog_exp_array_api_NDArray_if_ (egglog_exp_array_api_Int___eq__ _j (egglog_exp_array_api_TupleNDArray_length _self)) (unstable-fn "_i-egglog_exp_array_api_NDArray__i" _i) (unstable-fn "_self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j_" _self _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleNDArray_append (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.TupleNDArray :unextractable)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int ) egglog.exp.array_api.NDArray))
(constructor egglog_exp_array_api_TupleNDArray_fn (egglog.exp.array_api.Int egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleNDArray)
(constructor egglog_exp_array_api_Int___add__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_TupleNDArray_append _self _i) (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleNDArray_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "_self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_NDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___i-egglog_exp_array_api_NDArray__i___i___unstable-fn___self-egglog_exp_array_api_TupleNDArray__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__j____self__j__" _self _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i_ (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(rewrite (_self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i_ _self _i) (egglog_exp_array_api_TupleNDArray___getitem__ _self _i) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___sub__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(constructor _other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self_____ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleNDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(rewrite (_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self_____ _other _self _i) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_TupleValue___getitem__ _other (egglog_exp_array_api_Int___sub__ _i (egglog_exp_array_api_TupleNDArray_length _self))))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___lt__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(constructor _other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self________other__self__i__ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleNDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(rewrite (_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self________other__self__i__ _other _self _i) (egglog_exp_array_api_NDArray_if_ (egglog_exp_array_api_Int___lt__ _i (egglog_exp_array_api_TupleNDArray_length _self)) (unstable-fn "_self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i_" _self _i) (unstable-fn "_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self_____" _other _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleNDArray___add__ (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.TupleValue) egglog.exp.array_api.TupleNDArray :unextractable)
(rewrite (egglog_exp_array_api_TupleNDArray___add__ _self _other) (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleNDArray_length _self) (egglog_exp_array_api_TupleValue_length _other)) (unstable-fn "_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleNDArray_length__self____unstable-fn___self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleNDArray___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleNDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_NDArray___init____egglog_exp_array_api_RecursiveValue___init____egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleNDArray_length__self________other__self__i__" _other _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _idx-egglog_exp_array_api_Int__idx (egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_idx-egglog_exp_array_api_Int__idx _idx) _idx :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int_NEVER () egglog.exp.array_api.Int)
(constructor _egglog_exp_array_api_Int_NEVER__ () egglog.exp.array_api.Int)
(rewrite (_egglog_exp_array_api_Int_NEVER__ ) (egglog_exp_array_api_Int_NEVER ) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_check_index (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Int] (UnstableFn () egglog.exp.array_api.Int))
(constructor egglog_exp_array_api_Int_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.Int] egglog.builtins.UnstableFn[egglog.exp.array_api.Int]) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_Boolean___and__ (egglog.exp.array_api.Boolean egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean)
(constructor egglog_exp_array_api_Int___ge__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_check_index _length _idx) (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Boolean___and__ (egglog_exp_array_api_Int___ge__ _idx (egglog_exp_array_api_Int___init__ 0)) (egglog_exp_array_api_Int___lt__ _idx _length)) (unstable-fn "_idx-egglog_exp_array_api_Int__idx" _idx) (unstable-fn "_egglog_exp_array_api_Int_NEVER__")) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_append_start (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt :unextractable)
(constructor _self-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt_append_start__idx__egglog_exp_array_api_check_index__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_NDArray_shape__self___egglog_exp_array_api_Int___init___0____i___ (egglog.exp.array_api.NDArray egglog.exp.array_api.Int egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(rewrite (_self-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt_append_start__idx__egglog_exp_array_api_check_index__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_NDArray_shape__self___egglog_exp_array_api_Int___init___0____i___ _self _i _idx) (egglog_exp_array_api_NDArray_index _self (egglog_exp_array_api_TupleInt_append_start _idx (egglog_exp_array_api_check_index (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_NDArray_shape _self) (egglog_exp_array_api_Int___init__ 0)) _i))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_partial_index (egglog.exp.array_api.NDArray egglog.exp.array_api.Int) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_TupleInt_drop (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_NDArray_partial_index _self _i) (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt_drop (egglog_exp_array_api_NDArray_shape _self) (egglog_exp_array_api_Int___init__ 1)) (egglog_exp_array_api_NDArray_dtype _self) (unstable-fn "_self-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_NDArray_index__self__egglog_exp_array_api_TupleInt_append_start__idx__egglog_exp_array_api_check_index__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_NDArray_shape__self___egglog_exp_array_api_Int___init___0____i___" _self _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_Value__i (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (_i-egglog_exp_array_api_Value__i _i) _i :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j_ (egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j_ _self _j) (egglog_exp_array_api_TupleValue___getitem__ _self _j) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value] (UnstableFn () egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_Value_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.Value] egglog.builtins.UnstableFn[egglog.exp.array_api.Value]) egglog.exp.array_api.Value)
(constructor _i-egglog_exp_array_api_Value__self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleValue_length__self____unstable-fn___i-egglog_exp_array_api_Value__i___i___unstable-fn___self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j____self__j__ (egglog.exp.array_api.Value egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_i-egglog_exp_array_api_Value__self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleValue_length__self____unstable-fn___i-egglog_exp_array_api_Value__i___i___unstable-fn___self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j____self__j__ _i _self _j) (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Int___eq__ _j (egglog_exp_array_api_TupleValue_length _self)) (unstable-fn "_i-egglog_exp_array_api_Value__i" _i) (unstable-fn "_self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j_" _self _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_append (egglog.exp.array_api.TupleValue egglog.exp.array_api.Value) egglog.exp.array_api.TupleValue :unextractable)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int ) egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_TupleValue_fn (egglog.exp.array_api.Int egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleValue)
(rewrite (egglog_exp_array_api_TupleValue_append _self _i) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "_i-egglog_exp_array_api_Value__self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleValue_length__self____unstable-fn___i-egglog_exp_array_api_Value__i___i___unstable-fn___self-egglog_exp_array_api_TupleValue__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__j____self__j__" _i _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i_ (egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i_ _self _i) (egglog_exp_array_api_TupleValue___getitem__ _self _i) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self___ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self___ _other _self _i) (egglog_exp_array_api_TupleValue___getitem__ _other (egglog_exp_array_api_Int___sub__ _i (egglog_exp_array_api_TupleValue_length _self))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleValue_length__self____unstable-fn___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self______other__self__i__ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleValue_length__self____unstable-fn___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self______other__self__i__ _other _self _i) (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Int___lt__ _i (egglog_exp_array_api_TupleValue_length _self)) (unstable-fn "_self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i_" _self _i) (unstable-fn "_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self___" _other _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue___add__ (egglog.exp.array_api.TupleValue egglog.exp.array_api.TupleValue) egglog.exp.array_api.TupleValue :unextractable)
(rewrite (egglog_exp_array_api_TupleValue___add__ _self _other) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_TupleValue_length _other)) (unstable-fn "_other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleValue_length__self____unstable-fn___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleValue__self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleValue___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleValue_length__self______other__self__i__" _other _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_last (egglog.exp.array_api.TupleValue) egglog.exp.array_api.Value :unextractable)
(rewrite (egglog_exp_array_api_TupleValue_last _self) (egglog_exp_array_api_TupleValue___getitem__ _self (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_Int___init__ 1))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_drop_last (egglog.exp.array_api.TupleValue) egglog.exp.array_api.TupleValue :unextractable)
(rewrite (egglog_exp_array_api_TupleValue_drop_last _self) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "egglog_exp_array_api_TupleValue___getitem__" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _init-egglog_exp_array_api_Boolean__init (egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean)
(rewrite (_init-egglog_exp_array_api_Boolean__init _init) _init :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Value] (UnstableFn (egglog.exp.array_api.Boolean egglog.exp.array_api.Value) egglog.exp.array_api.Boolean))
(constructor egglog_exp_array_api_TupleValue_foldl_boolean (egglog.exp.array_api.TupleValue egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Value] egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Value___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleValue__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_boolean__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Value] egglog.exp.array_api.Boolean egglog.exp.array_api.TupleValue) egglog.exp.array_api.Boolean)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Value___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleValue__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_boolean__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__ _f _init _self) (unstable-app _f (egglog_exp_array_api_TupleValue_foldl_boolean (egglog_exp_array_api_TupleValue_drop_last _self) _f _init) (egglog_exp_array_api_TupleValue_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean] (UnstableFn () egglog.exp.array_api.Boolean))
(constructor egglog_exp_array_api_Boolean_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean] egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean]) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_TupleValue_foldl_boolean _self _f _init) (egglog_exp_array_api_Boolean_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Boolean__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Value___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleValue__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_boolean__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__" _f _init _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _init-egglog_exp_array_api_Value__init (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (_init-egglog_exp_array_api_Value__init _init) _init :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Value] (UnstableFn (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_TupleValue_foldl_value (egglog.exp.array_api.TupleValue egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Value] egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Value] egglog.exp.array_api.TupleValue egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__ _f _self _init) (unstable-app _f (egglog_exp_array_api_TupleValue_foldl_value (egglog_exp_array_api_TupleValue_drop_last _self) _f _init) (egglog_exp_array_api_TupleValue_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleValue_foldl_value _self _f _init) (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleValue_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Value__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleValue_drop_last__self___f__init___egglog_exp_array_api_TupleValue_last__self__" _f _self _init)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value] (UnstableFn (egglog.exp.array_api.Value ) egglog.exp.array_api.Value))
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleValue___getitem____self__i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value] egglog.exp.array_api.TupleValue egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleValue___getitem____self__i__ _f _self _i) (unstable-app _f (egglog_exp_array_api_TupleValue___getitem__ _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_map_value (egglog.exp.array_api.TupleValue egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value]) egglog.exp.array_api.TupleValue :unextractable)
(rewrite (egglog_exp_array_api_TupleValue_map_value _self _f) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_TupleValue_length _self) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value___self-egglog_exp_array_api_TupleValue__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleValue___getitem____self__i__" _f _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Boolean___or__ (egglog.exp.array_api.Boolean egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean)
(constructor egglog_exp_array_api_Value___eq__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(constructor _value-egglog_exp_array_api_Value__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Value__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Value___eq____value__j__ (egglog.exp.array_api.Value egglog.exp.array_api.Boolean egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (_value-egglog_exp_array_api_Value__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Value__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Value___eq____value__j__ _value _acc _j) (egglog_exp_array_api_Boolean___or__ _acc (egglog_exp_array_api_Value___eq__ _value _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_contains (egglog.exp.array_api.TupleValue egglog.exp.array_api.Value) egglog.exp.array_api.Boolean :unextractable)
(constructor egglog_exp_array_api_Boolean___init__ (bool) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_TupleValue_contains _self _value) (egglog_exp_array_api_TupleValue_foldl_boolean _self (unstable-fn "_value-egglog_exp_array_api_Value__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Value__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Value___eq____value__j__" _value) (egglog_exp_array_api_Boolean___init__ false)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _ti-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_from_int__egglog_exp_array_api_TupleInt___getitem____ti__i__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_ti-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_from_int__egglog_exp_array_api_TupleInt___getitem____ti__i__ _ti _i) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_TupleInt___getitem__ _ti _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleValue_from_tuple_int (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleValue :unextractable)
(rewrite (egglog_exp_array_api_TupleValue_from_tuple_int _ti) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_TupleInt_length _ti) (unstable-fn "_ti-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value_from_int__egglog_exp_array_api_TupleInt___getitem____ti__i__" _ti)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_TupleInt__i (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (_i-egglog_exp_array_api_TupleInt__i _i) _i :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.TupleTupleInt)
(constructor egglog_exp_array_api_TupleTupleInt___getitem__ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(constructor _self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j_ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j_ _self _j) (egglog_exp_array_api_TupleTupleInt___getitem__ _self _j) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt] (UnstableFn () egglog.exp.array_api.TupleInt))
(constructor egglog_exp_array_api_TupleInt_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt] egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt]) egglog.exp.array_api.TupleInt)
(constructor egglog_exp_array_api_TupleTupleInt_length (egglog.exp.array_api.TupleTupleInt) egglog.exp.array_api.Int)
(constructor _i-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___i-egglog_exp_array_api_TupleInt__i___i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j____self__j__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_i-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___i-egglog_exp_array_api_TupleInt__i___i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j____self__j__ _i _self _j) (egglog_exp_array_api_TupleInt_if_ (egglog_exp_array_api_Int___eq__ _j (egglog_exp_array_api_TupleTupleInt_length _self)) (unstable-fn "_i-egglog_exp_array_api_TupleInt__i" _i) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j_" _self _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleTupleInt_append (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleTupleInt :unextractable)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int ) egglog.exp.array_api.TupleInt))
(constructor egglog_exp_array_api_TupleTupleInt_fn (egglog.exp.array_api.Int egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleTupleInt)
(rewrite (egglog_exp_array_api_TupleTupleInt_append _self _i) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleTupleInt_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "_i-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___i-egglog_exp_array_api_TupleInt__i___i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__j____self__j__" _i _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i_ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i_ _self _i) (egglog_exp_array_api_TupleTupleInt___getitem__ _self _i) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self___ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self___ _self _other _i) (egglog_exp_array_api_TupleTupleInt___getitem__ _other (egglog_exp_array_api_Int___sub__ _i (egglog_exp_array_api_TupleTupleInt_length _self))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i____self__i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self______self__other__i__ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i____self__i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self______self__other__i__ _self _other _i) (egglog_exp_array_api_TupleInt_if_ (egglog_exp_array_api_Int___lt__ _i (egglog_exp_array_api_TupleTupleInt_length _self)) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i_" _self _i) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self___" _self _other _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleTupleInt___add__ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.TupleTupleInt) egglog.exp.array_api.TupleTupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleTupleInt___add__ _self _other) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleTupleInt_length _self) (egglog_exp_array_api_TupleTupleInt_length _other)) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleTupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__i____self__i___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__other-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleTupleInt_length__self______self__other__i__" _self _other)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleTupleInt__n-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__n-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__ _self _n _i) (egglog_exp_array_api_TupleTupleInt___getitem__ _self (egglog_exp_array_api_Int___add__ _i _n)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleTupleInt_drop (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleTupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleTupleInt_drop _self _n) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleTupleInt_length _self) _n) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__n-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleTupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__" _self _n)) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.TupleInt] (UnstableFn (egglog.exp.array_api.TupleInt ) egglog.exp.array_api.Int))
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleTupleInt___getitem____self__i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.TupleInt] egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleTupleInt___getitem____self__i__ _f _self _i) (unstable-app _f (egglog_exp_array_api_TupleTupleInt___getitem__ _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleTupleInt_map_int (egglog.exp.array_api.TupleTupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.TupleInt]) egglog.exp.array_api.TupleInt :unextractable)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int ) egglog.exp.array_api.Int))
(constructor egglog_exp_array_api_TupleInt_fn (egglog.exp.array_api.Int egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_TupleTupleInt_map_int _self _f) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_TupleTupleInt_length _self) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleTupleInt___getitem____self__i__" _f _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt] (UnstableFn (egglog.exp.array_api.Value egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_TupleTupleInt_foldl_value (egglog.exp.array_api.TupleTupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt] egglog.exp.array_api.Value) egglog.exp.array_api.Value :unextractable)
(constructor egglog_exp_array_api_TupleTupleInt_drop_last (egglog.exp.array_api.TupleTupleInt) egglog.exp.array_api.TupleTupleInt :unextractable)
(constructor egglog_exp_array_api_TupleTupleInt_last (egglog.exp.array_api.TupleTupleInt) egglog.exp.array_api.TupleInt :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleTupleInt_foldl_value__egglog_exp_array_api_TupleTupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleTupleInt_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt] egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleTupleInt_foldl_value__egglog_exp_array_api_TupleTupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleTupleInt_last__self__ _f _self _init) (unstable-app _f (egglog_exp_array_api_TupleTupleInt_foldl_value (egglog_exp_array_api_TupleTupleInt_drop_last _self) _f _init) (egglog_exp_array_api_TupleTupleInt_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt_foldl_value _self _f _init) (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleTupleInt_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Value__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___self-egglog_exp_array_api_TupleTupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleTupleInt_foldl_value__egglog_exp_array_api_TupleTupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleTupleInt_last__self__" _f _self _init)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt_last _self) (egglog_exp_array_api_TupleTupleInt___getitem__ _self (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleTupleInt_length _self) (egglog_exp_array_api_Int___init__ 1))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt_drop_last _self) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleTupleInt_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "egglog_exp_array_api_TupleTupleInt___getitem__" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x_ (egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int)
(rewrite (_x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x_ _x) (egglog_exp_array_api_TupleInt_length _x) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___mod__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_Int___floordiv__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(constructor egglog_exp_array_api_TupleInt_product (egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int :unextractable)
(constructor _self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j____ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j____ _self _i _j) (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_TupleTupleInt___getitem__ _self _j) (egglog_exp_array_api_Int___mod__ (egglog_exp_array_api_Int___floordiv__ _i (egglog_exp_array_api_TupleInt_product (egglog_exp_array_api_TupleTupleInt_map_int (egglog_exp_array_api_TupleTupleInt_drop _self (egglog_exp_array_api_Int___add__ _j (egglog_exp_array_api_Int___init__ 1))) (unstable-fn "_x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x_")))) (egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_TupleTupleInt___getitem__ _self _j)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_fn__egglog_exp_array_api_TupleTupleInt_length__self___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j_______self__i__ (egglog.exp.array_api.TupleTupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_fn__egglog_exp_array_api_TupleTupleInt_length__self___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j_______self__i__ _self _i) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_TupleTupleInt_length _self) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j____" _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleTupleInt_product (egglog.exp.array_api.TupleTupleInt) egglog.exp.array_api.TupleTupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleTupleInt_product _self) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_TupleInt_product (egglog_exp_array_api_TupleTupleInt_map_int _self (unstable-fn "_x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x_"))) (unstable-fn "_self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_fn__egglog_exp_array_api_TupleTupleInt_length__self___unstable-fn___self-egglog_exp_array_api_TupleTupleInt__i-egglog_exp_array_api_Int__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____egglog_exp_array_api_TupleTupleInt___getitem____self__j___egglog_exp_array_api_Int___mod____egglog_exp_array_api_Int___floordiv____i__egglog_exp_array_api_TupleInt_product__egglog_exp_array_api_TupleTupleInt_map_int__egglog_exp_array_api_TupleTupleInt_drop__self__egglog_exp_array_api_Int___add____j__egglog_exp_array_api_Int___init___1_____unstable-fn___x-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt_length__x________egglog_exp_array_api_TupleInt_length__egglog_exp_array_api_TupleTupleInt___getitem____self__j_______self__i__" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_Int__i (egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_i-egglog_exp_array_api_Int__i _i) _i :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j_ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j_ _self _j) (egglog_exp_array_api_TupleInt___getitem__ _self _j) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleInt_length__self____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j____self__j__ (egglog.exp.array_api.Int egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleInt_length__self____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j____self__j__ _i _self _j) (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Int___eq__ _j (egglog_exp_array_api_TupleInt_length _self)) (unstable-fn "_i-egglog_exp_array_api_Int__i" _i) (unstable-fn "_self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j_" _self _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_append (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_append _self _i) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "_i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_TupleInt_length__self____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__j____self__j__" _i _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1___ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1___ _self _j) (egglog_exp_array_api_TupleInt___getitem__ _self (egglog_exp_array_api_Int___sub__ _j (egglog_exp_array_api_Int___init__ 1))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_Int___init___0____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1______self__j__ (egglog.exp.array_api.Int egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_Int___init___0____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1______self__j__ _i _self _j) (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Int___eq__ _j (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_i-egglog_exp_array_api_Int__i" _i) (unstable-fn "_self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1___" _self _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_append_start _self _i) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "_i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___eq____j__egglog_exp_array_api_Int___init___0____unstable-fn___i-egglog_exp_array_api_Int__i___i___unstable-fn___self-egglog_exp_array_api_TupleInt__j-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____j__egglog_exp_array_api_Int___init___1______self__j__" _i _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i_ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i_ _self _i) (egglog_exp_array_api_TupleInt___getitem__ _self _i) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self___ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int)
(rewrite (_other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self___ _other _i _self) (egglog_exp_array_api_TupleInt___getitem__ _other (egglog_exp_array_api_Int___sub__ _i (egglog_exp_array_api_TupleInt_length _self))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _other-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self______other__i__self__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_other-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self______other__i__self__ _other _self _i) (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Int___lt__ _i (egglog_exp_array_api_TupleInt_length _self)) (unstable-fn "_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i_" _self _i) (unstable-fn "_other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self___" _other _i _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt___add__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt___add__ _self _other) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_TupleInt_length _other)) (unstable-fn "_other-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int_if___egglog_exp_array_api_Int___lt____i__egglog_exp_array_api_TupleInt_length__self____unstable-fn___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i____self__i___unstable-fn___other-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleInt___getitem____other__egglog_exp_array_api_Int___sub____i__egglog_exp_array_api_TupleInt_length__self______other__i__self__" _other _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _n-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__ (egglog.exp.array_api.Int egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_n-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__ _n _self _i) (egglog_exp_array_api_TupleInt___getitem__ _self (egglog_exp_array_api_Int___add__ _i _n)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_drop _self _n) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleInt_length _self) _n) (unstable-fn "_n-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___add____i__n__" _n _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_rest (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_rest _self) (egglog_exp_array_api_TupleInt_drop _self (egglog_exp_array_api_Int___init__ 1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_last (egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_last _self) (egglog_exp_array_api_TupleInt___getitem__ _self (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 1))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_drop_last (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_drop_last _self) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 1)) (unstable-fn "egglog_exp_array_api_TupleInt___getitem__" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_range (egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_range _stop) (egglog_exp_array_api_TupleInt_fn _stop (unstable-fn "_i-egglog_exp_array_api_Int__i")) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _init-egglog_exp_array_api_Int__init (egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_init-egglog_exp_array_api_Int__init _init) _init :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int))
(constructor egglog_exp_array_api_TupleInt_foldl (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int,egglog.exp.array_api.Int] egglog.exp.array_api.Int) egglog.exp.array_api.Int :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int_egglog_exp_array_api_Int___init-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int,egglog.exp.array_api.Int] egglog.exp.array_api.Int egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int_egglog_exp_array_api_Int___init-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ _f _init _self) (unstable-app _f (egglog_exp_array_api_TupleInt_foldl (egglog_exp_array_api_TupleInt_drop_last _self) _f _init) (egglog_exp_array_api_TupleInt_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_foldl _self _f _init) (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Int__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int_egglog_exp_array_api_Int___init-egglog_exp_array_api_Int__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__" _f _init _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Boolean egglog.exp.array_api.Int) egglog.exp.array_api.Boolean))
(constructor egglog_exp_array_api_TupleInt_foldl_boolean (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Int] egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_boolean__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Boolean,egglog.exp.array_api.Int] egglog.exp.array_api.Boolean egglog.exp.array_api.TupleInt) egglog.exp.array_api.Boolean)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_boolean__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ _f _init _self) (unstable-app _f (egglog_exp_array_api_TupleInt_foldl_boolean (egglog_exp_array_api_TupleInt_drop_last _self) _f _init) (egglog_exp_array_api_TupleInt_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_foldl_boolean _self _f _init) (egglog_exp_array_api_Boolean_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Boolean__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___init-egglog_exp_array_api_Boolean__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_boolean__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__" _f _init _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _init-egglog_exp_array_api_TupleInt__init (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (_init-egglog_exp_array_api_TupleInt__init _init) _init :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt))
(constructor egglog_exp_array_api_TupleInt_foldl_tuple_int (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___init-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_tuple_int__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___init-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_tuple_int__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ _f _init _self) (unstable-app _f (egglog_exp_array_api_TupleInt_foldl_tuple_int (egglog_exp_array_api_TupleInt_drop_last _self) _f _init) (egglog_exp_array_api_TupleInt_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_foldl_tuple_int _self _f _init) (egglog_exp_array_api_TupleInt_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_TupleInt__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___init-egglog_exp_array_api_TupleInt__self-egglog_exp_array_api_TupleInt__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_tuple_int__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__" _f _init _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Value egglog.exp.array_api.Int) egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_TupleInt_foldl_value (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Int] egglog.exp.array_api.Value) egglog.exp.array_api.Value :unextractable)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_value__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Value,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_value__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__ _f _self _init) (unstable-app _f (egglog_exp_array_api_TupleInt_foldl_value (egglog_exp_array_api_TupleInt_drop_last _self) _f _init) (egglog_exp_array_api_TupleInt_last _self)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_foldl_value _self _f _init) (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_TupleInt_length _self) (egglog_exp_array_api_Int___init__ 0)) (unstable-fn "_init-egglog_exp_array_api_Value__init" _init) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__init-egglog_exp_array_api_Value__unstable-app__f__egglog_exp_array_api_TupleInt_foldl_value__egglog_exp_array_api_TupleInt_drop_last__self___f__init___egglog_exp_array_api_TupleInt_last__self__" _f _self _init)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _i-egglog_exp_array_api_Int__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Int___eq____i__j__ (egglog.exp.array_api.Int egglog.exp.array_api.Boolean egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(rewrite (_i-egglog_exp_array_api_Int__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Int___eq____i__j__ _i _acc _j) (egglog_exp_array_api_Boolean___or__ _acc (egglog_exp_array_api_Int___eq__ _i _j)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_contains (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Boolean :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_contains _self _i) (egglog_exp_array_api_TupleInt_foldl_boolean _self (unstable-fn "_i-egglog_exp_array_api_Int__acc-egglog_exp_array_api_Boolean__j-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___or____acc__egglog_exp_array_api_Int___eq____i__j__" _i) (egglog_exp_array_api_Boolean___init__ false)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v_ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v_ _acc _v) (egglog_exp_array_api_TupleInt_append _acc _v) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _acc-egglog_exp_array_api_TupleInt__acc (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (_acc-egglog_exp_array_api_TupleInt__acc _acc) _acc :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Int] (UnstableFn (egglog.exp.array_api.Int ) egglog.exp.array_api.Boolean))
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___unstable-app__f__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v____acc__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__acc___acc__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___unstable-app__f__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v____acc__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__acc___acc__ _f _acc _v) (egglog_exp_array_api_TupleInt_if_ (unstable-app _f _v) (unstable-fn "_acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v_" _acc _v) (unstable-fn "_acc-egglog_exp_array_api_TupleInt__acc" _acc)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_filter (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Boolean,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_filter _self _f) (egglog_exp_array_api_TupleInt_foldl_tuple_int _self (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Boolean_egglog_exp_array_api_Int___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_if___unstable-app__f__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__v-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__acc__v____acc__v___unstable-fn___acc-egglog_exp_array_api_TupleInt__acc___acc__" _f) (egglog_exp_array_api_TupleInt___init__ (vec-empty ))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___mul__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(constructor _acc-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___mul____acc__i_ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_acc-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___mul____acc__i_ _acc _i) (egglog_exp_array_api_Int___mul__ _acc _i) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_product _self) (egglog_exp_array_api_TupleInt_foldl _self (unstable-fn "_acc-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___mul____acc__i_") (egglog_exp_array_api_Int___init__ 1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_select (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(constructor egglog_exp_array_api_TupleInt_map (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_select _self _indices) (egglog_exp_array_api_TupleInt_map _indices (unstable-fn "_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i_" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Boolean___invert__ (egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean)
(constructor _indices-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___invert____egglog_exp_array_api_TupleInt_contains__indices__i__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(rewrite (_indices-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___invert____egglog_exp_array_api_TupleInt_contains__indices__i__ _indices _i) (egglog_exp_array_api_Boolean___invert__ (egglog_exp_array_api_TupleInt_contains _indices _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_deselect (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_deselect _self _indices) (egglog_exp_array_api_TupleInt_map (egglog_exp_array_api_TupleInt_filter (egglog_exp_array_api_TupleInt_range (egglog_exp_array_api_TupleInt_length _self)) (unstable-fn "_indices-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_Boolean___invert____egglog_exp_array_api_TupleInt_contains__indices__i__" _indices)) (unstable-fn "_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__i_" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____egglog_exp_array_api_Int___sub____egglog_exp_array_api_TupleInt_length__self___i___egglog_exp_array_api_Int___init___1___ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____egglog_exp_array_api_Int___sub____egglog_exp_array_api_TupleInt_length__self___i___egglog_exp_array_api_Int___init___1___ _self _i) (egglog_exp_array_api_TupleInt___getitem__ _self (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_TupleInt_length _self) _i) (egglog_exp_array_api_Int___init__ 1))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_reverse (egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_reverse _self) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_TupleInt_length _self) (unstable-fn "_self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt___getitem____self__egglog_exp_array_api_Int___sub____egglog_exp_array_api_Int___sub____egglog_exp_array_api_TupleInt_length__self___i___egglog_exp_array_api_Int___init___1___" _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ _f _self _i) (unstable-app _f (egglog_exp_array_api_TupleInt___getitem__ _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_map _self _f) (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_TupleInt_length _self) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__" _f _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ _f _self _i) (unstable-app _f (egglog_exp_array_api_TupleInt___getitem__ _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_map_tuple_int (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleTupleInt :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_map_tuple_int _self _f) (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_TupleInt_length _self) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__" _f _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Int] egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__ _f _self _i) (unstable-app _f (egglog_exp_array_api_TupleInt___getitem__ _self _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_TupleInt_map_value (egglog.exp.array_api.TupleInt egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Int]) egglog.exp.array_api.TupleValue :unextractable)
(rewrite (egglog_exp_array_api_TupleInt_map_value _self _f) (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_TupleInt_length _self) (unstable-fn "_f-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___self-egglog_exp_array_api_TupleInt__i-egglog_exp_array_api_Int__unstable-app__f__egglog_exp_array_api_TupleInt___getitem____self__i__" _f _self)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value___mul__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(constructor _idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i____ (egglog.exp.array_api.TupleInt egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray egglog.exp.array_api.Int) egglog.exp.array_api.Value)
(rewrite (_idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i____ _idx _x2 _x1 _i) (egglog_exp_array_api_Value___mul__ (egglog_exp_array_api_NDArray_index _x1 (egglog_exp_array_api_TupleInt_append _idx _i)) (egglog_exp_array_api_NDArray_index _x2 (egglog_exp_array_api_TupleInt___init__ (vec-of _i)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value___add__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(sort egglog.exp.array_api.Float)
(constructor egglog_exp_array_api_Value_from_float (egglog.exp.array_api.Float) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_Float_from_int (egglog.exp.array_api.Int) egglog.exp.array_api.Float)
(constructor _x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleInt_map_value__egglog_exp_array_api_TupleInt_range__egglog_exp_array_api_TupleInt_last__egglog_exp_array_api_NDArray_shape__x1_____unstable-fn___idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i_______idx__x2__x1____unstable-fn__egglog_exp_array_api_Value___add______egglog_exp_array_api_Value_from_float__egglog_exp_array_api_Float_from_int__egglog_exp_array_api_Int___init___0____ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(rewrite (_x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleInt_map_value__egglog_exp_array_api_TupleInt_range__egglog_exp_array_api_TupleInt_last__egglog_exp_array_api_NDArray_shape__x1_____unstable-fn___idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i_______idx__x2__x1____unstable-fn__egglog_exp_array_api_Value___add______egglog_exp_array_api_Value_from_float__egglog_exp_array_api_Float_from_int__egglog_exp_array_api_Int___init___0____ _x2 _x1 _idx) (egglog_exp_array_api_TupleValue_foldl_value (egglog_exp_array_api_TupleInt_map_value (egglog_exp_array_api_TupleInt_range (egglog_exp_array_api_TupleInt_last (egglog_exp_array_api_NDArray_shape _x1))) (unstable-fn "_idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i____" _idx _x2 _x1)) (unstable-fn "egglog_exp_array_api_Value___add__") (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_from_int (egglog_exp_array_api_Int___init__ 0)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_vecdot _x1 _x2) (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt_drop_last (egglog_exp_array_api_NDArray_shape _x1)) (egglog_exp_array_api_NDArray_dtype _x1) (unstable-fn "_x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__idx-egglog_exp_array_api_TupleInt__egglog_exp_array_api_TupleValue_foldl_value__egglog_exp_array_api_TupleInt_map_value__egglog_exp_array_api_TupleInt_range__egglog_exp_array_api_TupleInt_last__egglog_exp_array_api_NDArray_shape__x1_____unstable-fn___idx-egglog_exp_array_api_TupleInt__x2-egglog_exp_array_api_NDArray__x1-egglog_exp_array_api_NDArray__i-egglog_exp_array_api_Int__egglog_exp_array_api_Value___mul____egglog_exp_array_api_NDArray_index__x1__egglog_exp_array_api_TupleInt_append__idx__i____egglog_exp_array_api_NDArray_index__x2__egglog_exp_array_api_TupleInt___init____vec-of__i_______idx__x2__x1____unstable-fn__egglog_exp_array_api_Value___add______egglog_exp_array_api_Value_from_float__egglog_exp_array_api_Float_from_int__egglog_exp_array_api_Int___init___0____" _x2 _x1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray_size (egglog.exp.array_api.NDArray) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_NDArray_size _x) (egglog_exp_array_api_TupleInt_foldl (egglog_exp_array_api_NDArray_shape _x) (unstable-fn "egglog_exp_array_api_Int___mul__") (egglog_exp_array_api_Int___init__ 1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_unique_values (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_possible_values (egglog.exp.array_api.Value) egglog.exp.array_api.TupleValue)
(constructor %egglog_thunk_ALL_INDICES () egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_unique_values _a) (egglog_exp_array_api_NDArray_from_tuple_value (egglog_exp_array_api_possible_values (egglog_exp_array_api_NDArray_index _a (%egglog_thunk_ALL_INDICES )))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_isfinite (egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value_isfinite (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_from_bool (egglog.exp.array_api.Boolean) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_Value_isfinite (egglog_exp_array_api_Value_from_bool _b)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___init__ (f64) egglog.exp.array_api.Float :cost 3)
(rewrite (egglog_exp_array_api_Value_isfinite (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___init__ _f))) (egglog_exp_array_api_Boolean___init__ true) :when ((!= _f NaN)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_isfinite (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(sort egglog.exp.array_api.OptionalIntOrTuple)
(constructor egglog_exp_array_api_sum (egglog.exp.array_api.NDArray egglog.exp.array_api.OptionalIntOrTuple) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_OptionalIntOrTuple_none () egglog.exp.array_api.OptionalIntOrTuple)
(rewrite (egglog_exp_array_api_isfinite (egglog_exp_array_api_sum _arr (egglog_exp_array_api_OptionalIntOrTuple_none ))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Value_isfinite (egglog_exp_array_api_NDArray_index _arr (%egglog_thunk_ALL_INDICES )))))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_assume_value_one_of (egglog.exp.array_api.NDArray egglog.exp.array_api.TupleValue) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_assume_value_one_of _x _vs)) (egglog_exp_array_api_NDArray_shape _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_assume_value_one_of _x _vs)) (egglog_exp_array_api_NDArray_dtype _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _v (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_assume_value_one_of _x _vs) _idx)))
((union _v (egglog_exp_array_api_NDArray_index _x _idx))
(union (egglog_exp_array_api_possible_values _v) _vs))
:ruleset egglog.exp.array_api.array_api_ruleset )
(constructor egglog_exp_array_api_assume_isfinite (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_assume_isfinite _x)) (egglog_exp_array_api_NDArray_shape _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_assume_isfinite _x)) (egglog_exp_array_api_NDArray_dtype _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_assume_isfinite _x) _ti) (egglog_exp_array_api_NDArray_index _x _ti) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_isfinite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_assume_isfinite _x) _ti)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_assume_shape (egglog.exp.array_api.NDArray egglog.exp.array_api.TupleInt) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_assume_shape _x _shape)) _shape :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_assume_shape _x _shape)) (egglog_exp_array_api_NDArray_dtype _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_assume_shape _x _shape) _idx) (egglog_exp_array_api_NDArray_index _x _idx) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_assume_dtype (egglog.exp.array_api.NDArray egglog.exp.array_api.DType) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_assume_dtype _x _dtype)) _dtype :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_assume_dtype _x _dtype)) (egglog_exp_array_api_NDArray_shape _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_assume_dtype _x _dtype) _idx) (egglog_exp_array_api_NDArray_index _x _idx) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.IndexKey)
(constructor egglog_exp_array_api_NDArray___getitem__ (egglog.exp.array_api.NDArray egglog.exp.array_api.IndexKey) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_IndexKey_int (egglog.exp.array_api.Int) egglog.exp.array_api.IndexKey)
(rewrite (egglog_exp_array_api_NDArray___getitem__ _x (egglog_exp_array_api_IndexKey_int _i)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_NDArray_index _x (egglog_exp_array_api_TupleInt___init__ (vec-of _i))))) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.OptionalBool)
(constructor egglog_exp_array_api_reshape (egglog.exp.array_api.NDArray egglog.exp.array_api.TupleInt egglog.exp.array_api.OptionalBool) egglog.exp.array_api.NDArray)
(rule ((= ___a (egglog_exp_array_api_reshape _x _shape _copy)))
((egglog_exp_array_api_NDArray_shape _x)
(egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_NDArray_shape _x)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((egglog_exp_array_api_reshape _x _shape _copy))
((egglog_exp_array_api_TupleInt_length _shape)
(egglog_exp_array_api_TupleInt___getitem__ _shape (egglog_exp_array_api_Int___init__ 0)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_reshape _x _shape _copy) _x :when ((= (egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_NDArray_shape _x)) (egglog_exp_array_api_Int___init__ 1)) (= (egglog_exp_array_api_TupleInt_length _shape) (egglog_exp_array_api_Int___init__ 1)) (= (egglog_exp_array_api_TupleInt___getitem__ _shape (egglog_exp_array_api_Int___init__ 0)) (egglog_exp_array_api_Int___init__ -1))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_any (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value_to_truthy_value (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_any _x) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_TupleValue_contains (egglog_exp_array_api_possible_values (egglog_exp_array_api_Value_to_truthy_value (egglog_exp_array_api_NDArray_index _x (%egglog_thunk_ALL_INDICES )))) (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Boolean___init__ true)))))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___lt__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___lt__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_broadcast_index (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(constructor egglog_exp_array_api_broadcast_shapes (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_NDArray___lt__ _x _y) _idx) (egglog_exp_array_api_Value___lt__ (egglog_exp_array_api_NDArray_index _x (egglog_exp_array_api_broadcast_index (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_broadcast_shapes (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_NDArray_shape _y)) _idx)) (egglog_exp_array_api_NDArray_index _y (egglog_exp_array_api_broadcast_index (egglog_exp_array_api_NDArray_shape _y) (egglog_exp_array_api_broadcast_shapes (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_NDArray_shape _y)) _idx))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___truediv__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___truediv__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_NDArray___truediv__ _x _y) _idx) (egglog_exp_array_api_Value___truediv__ (egglog_exp_array_api_NDArray_index _x (egglog_exp_array_api_broadcast_index (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_broadcast_shapes (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_NDArray_shape _y)) _idx)) (egglog_exp_array_api_NDArray_index _y (egglog_exp_array_api_broadcast_index (egglog_exp_array_api_NDArray_shape _y) (egglog_exp_array_api_broadcast_shapes (egglog_exp_array_api_NDArray_shape _x) (egglog_exp_array_api_NDArray_shape _y)) _idx))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) _idx) _v :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_astype (egglog.exp.array_api.NDArray egglog.exp.array_api.DType) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value_astype (egglog.exp.array_api.Value egglog.exp.array_api.DType) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_astype _x _dtype) _idx) (egglog_exp_array_api_Value_astype (egglog_exp_array_api_NDArray_index _x _idx) _dtype) :ruleset egglog.exp.array_api.array_api_ruleset)
(relation egglog_exp_array_api_greater_zero (egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_unique_counts (egglog.exp.array_api.NDArray) egglog.exp.array_api.TupleNDArray)
(rule ((= _v (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_unique_counts _x) (egglog_exp_array_api_Int___init__ 1)) _idx)))
((egglog_exp_array_api_greater_zero _v))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((egglog_exp_array_api_greater_zero _v)
(= _v1 (egglog_exp_array_api_Value_astype _v _dtype)))
((egglog_exp_array_api_greater_zero _v1))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= _v (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___init__ _f)))
(> _f 0.0))
((egglog_exp_array_api_greater_zero _v))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= _v (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ _i)))
(> _i 0))
((egglog_exp_array_api_greater_zero _v))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((egglog_exp_array_api_greater_zero _v)
(egglog_exp_array_api_greater_zero _v1)
(= _v2 (egglog_exp_array_api_Value___truediv__ _v _v1)))
((egglog_exp_array_api_greater_zero _v2))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((egglog_exp_array_api_greater_zero _v)
(= _v1 (egglog_exp_array_api_Value___lt__ _v (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ 0)))))
((union _v1 (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Boolean___init__ false))))
:ruleset egglog.exp.array_api.array_api_ruleset )
(sort egglog.builtins.Vec[egglog.exp.array_api.Value] (Vec egglog.exp.array_api.Value))
(constructor egglog_exp_array_api_TupleValue___init__ (egglog.builtins.Vec[egglog.exp.array_api.Value]) egglog.exp.array_api.TupleValue)
(rewrite (egglog_exp_array_api_possible_values (egglog_exp_array_api_Value_from_bool _b)) (egglog_exp_array_api_TupleValue___init__ (vec-of (egglog_exp_array_api_Value_from_bool _b))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _v1 (egglog_exp_array_api_Value_astype _v _dtype))
(egglog_exp_array_api_greater_zero _v))
((egglog_exp_array_api_greater_zero _v1))
:ruleset egglog.exp.array_api.array_api_ruleset )
(constructor egglog_exp_array_api_svd (egglog.exp.array_api.NDArray egglog.exp.array_api.Boolean) egglog.exp.array_api.TupleNDArray)
(rewrite (egglog_exp_array_api_svd _x _full_matrices) (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___init__ 3) (unstable-fn "egglog_exp_array_api_TupleNDArray___getitem__" (egglog_exp_array_api_svd _x _full_matrices))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_unique_inverse (egglog.exp.array_api.NDArray) egglog.exp.array_api.TupleNDArray)
(rewrite (egglog_exp_array_api_unique_inverse _x) (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___init__ 2) (unstable-fn "egglog_exp_array_api_TupleNDArray___getitem__" (egglog_exp_array_api_unique_inverse _x))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_unique_inverse _x) (egglog_exp_array_api_Int___init__ 0)) (egglog_exp_array_api_unique_values _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor ndarray-abs (egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Float_abs (egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (ndarray-abs (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_float _f)))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_abs _f)))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_unique_counts _x) (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___init__ 2) (unstable-fn "egglog_exp_array_api_TupleNDArray___getitem__" (egglog_exp_array_api_unique_counts _x))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_sum (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_unique_counts _x) (egglog_exp_array_api_Int___init__ 1)) (egglog_exp_array_api_OptionalIntOrTuple_none )) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_NDArray_size _x)))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_sum (egglog_exp_array_api_astype (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_unique_counts _x) (egglog_exp_array_api_Int___init__ 1)) _dtype) (egglog_exp_array_api_OptionalIntOrTuple_none )) (egglog_exp_array_api_astype (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_NDArray_size _x)))) _dtype) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_astype _x _dtype)) _dtype :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType_float64 () egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_astype (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___init__ _i)))) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___init__ (to-f64 _i))))) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.OptionalInt)
(constructor egglog_exp_array_api_concat (egglog.exp.array_api.TupleNDArray egglog.exp.array_api.OptionalInt) egglog.exp.array_api.NDArray)
(sort egglog.builtins.Vec[egglog.exp.array_api.NDArray] (Vec egglog.exp.array_api.NDArray))
(constructor egglog_exp_array_api_TupleNDArray___init__ (egglog.builtins.Vec[egglog.exp.array_api.NDArray]) egglog.exp.array_api.TupleNDArray)
(constructor egglog_exp_array_api_OptionalInt_none () egglog.exp.array_api.OptionalInt)
(rewrite (egglog_exp_array_api_concat (egglog_exp_array_api_TupleNDArray___init__ _vs) (egglog_exp_array_api_OptionalInt_none )) (vec-get _vs 0) :when ((= (vec-length _vs) 1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_unique_values (egglog_exp_array_api_unique_values _x)) (egglog_exp_array_api_unique_values _x) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_sum (egglog_exp_array_api_NDArray___truediv__ _x (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) (egglog_exp_array_api_OptionalIntOrTuple_none )) (egglog_exp_array_api_NDArray___truediv__ (egglog_exp_array_api_sum _x (egglog_exp_array_api_OptionalIntOrTuple_none )) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.OptionalDType)
(sort egglog.exp.array_api.OptionalDevice)
(constructor egglog_exp_array_api_asarray (egglog.exp.array_api.NDArray egglog.exp.array_api.OptionalDType egglog.exp.array_api.OptionalBool egglog.exp.array_api.OptionalDevice) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_OptionalDevice_none () egglog.exp.array_api.OptionalDevice)
(rewrite (egglog_exp_array_api_NDArray_ndim (egglog_exp_array_api_asarray _a _d _ob (egglog_exp_array_api_OptionalDevice_none ))) (egglog_exp_array_api_NDArray_ndim _a) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_OptionalDType_none () egglog.exp.array_api.OptionalDType)
(constructor egglog_exp_array_api_OptionalBool_none () egglog.exp.array_api.OptionalBool)
(rewrite (egglog_exp_array_api_asarray _a (egglog_exp_array_api_OptionalDType_none ) (egglog_exp_array_api_OptionalBool_none ) (egglog_exp_array_api_OptionalDevice_none )) _a :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_NDArray_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray,egglog.exp.array_api.Int] i64) egglog.exp.array_api.NDArray)
(rewrite (_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_NDArray_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ _idx_fn _i) (unstable-app _idx_fn (egglog_exp_array_api_Int___init__ _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _ti (egglog_exp_array_api_TupleNDArray___init__ _vs))
(= _ti (egglog_exp_array_api_TupleNDArray___init__ _vs2))
(!= _vs _vs2))
((vec-union _vs _vs2))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_TupleNDArray_length (egglog_exp_array_api_TupleNDArray_fn _i2 _idx_fn)) _i2 :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_TupleNDArray_fn _i2 _idx_fn) _i) (unstable-app _idx_fn (egglog_exp_array_api_check_index _i2 _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleNDArray_length (egglog_exp_array_api_TupleNDArray___init__ _vs)) (egglog_exp_array_api_Int___init__ (vec-length _vs)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleNDArray___getitem__ (egglog_exp_array_api_TupleNDArray___init__ _vs) (egglog_exp_array_api_Int___init__ _k)) (vec-get _vs _k) :subsume :when ((>= _k 0) (< _k (vec-length _vs))) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.NDArray,egglog.builtins.i64] (UnstableFn (i64 ) egglog.exp.array_api.NDArray))
(sort egglog.builtins.Vec[egglog.builtins.i64] (Vec i64))
(rewrite (egglog_exp_array_api_TupleNDArray_fn (egglog_exp_array_api_Int___init__ _k) _idx_fn) (egglog_exp_array_api_TupleNDArray___init__ (unstable-vec-map (unstable-fn "_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_NDArray_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__" _idx_fn) (vec-range _k))) :subsume :when ((>= _k 0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _x-egglog_exp_array_api_NDArray__j-i64__egglog_exp_array_api_NDArray_to_recursive_value__egglog_exp_array_api_NDArray_partial_index__x__egglog_exp_array_api_Int___init____j___ (egglog.exp.array_api.NDArray i64) egglog.exp.array_api.RecursiveValue)
(rewrite (_x-egglog_exp_array_api_NDArray__j-i64__egglog_exp_array_api_NDArray_to_recursive_value__egglog_exp_array_api_NDArray_partial_index__x__egglog_exp_array_api_Int___init____j___ _x _j) (egglog_exp_array_api_NDArray_to_recursive_value (egglog_exp_array_api_NDArray_partial_index _x (egglog_exp_array_api_Int___init__ _j))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_NDArray_fn _shape _dtype _idx_fn)) _shape :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_dtype (egglog_exp_array_api_NDArray_fn _shape _dtype _idx_fn)) _dtype :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_NDArray_fn _shape _dtype _idx_fn) _idx) (unstable-app _idx_fn _idx) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_RecursiveValue_shape (egglog.exp.array_api.RecursiveValue) egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_NDArray_shape (egglog_exp_array_api_NDArray___init__ _rv)) (egglog_exp_array_api_RecursiveValue_shape _rv) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_RecursiveValue___getitem__ (egglog.exp.array_api.RecursiveValue egglog.builtins.Vec[egglog.exp.array_api.Int]) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_NDArray_index (egglog_exp_array_api_NDArray___init__ _rv) (egglog_exp_array_api_TupleInt___init__ _vi)) (egglog_exp_array_api_RecursiveValue___getitem__ _rv _vi) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray___truediv__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___truediv__ _v _v))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___add__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray___add__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___add__ _v _v))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___mul__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray___mul__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___mul__ _v _v))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___pow__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___pow__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_NDArray___pow__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___pow__ _v _v1))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___sub__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___sub__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_NDArray___sub__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___sub__ _v _v))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray___lt__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value___lt__ _v _v1))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___le__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___le__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_NDArray___le__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Value___le__ _v _v1)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___eq__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(rewrite (egglog_exp_array_api_NDArray___eq__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Value___eq__ _v _v1)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___gt__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___gt__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_NDArray___gt__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Value___gt__ _v _v1)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_NDArray___ge__ (egglog.exp.array_api.NDArray egglog.exp.array_api.NDArray) egglog.exp.array_api.NDArray)
(constructor egglog_exp_array_api_Value___ge__ (egglog.exp.array_api.Value egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_NDArray___ge__ (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ _v1))) (egglog_exp_array_api_NDArray___init__ (egglog_exp_array_api_RecursiveValue___init__ (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Value___ge__ _v _v1)))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_T (egglog_exp_array_api_NDArray_T _x)) _x :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_if_ (egglog_exp_array_api_Boolean___init__ true) _xt _x1t) (unstable-app _xt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_if_ (egglog_exp_array_api_Boolean___init__ false) _xt _x1t) (unstable-app _x1t) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_to_recursive_value (egglog_exp_array_api_NDArray___init__ _rv)) _rv :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_NDArray_to_recursive_value (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt___init__ (vec-empty )) _dtype _idx_fn)) (egglog_exp_array_api_RecursiveValue___init__ (unstable-app _idx_fn (egglog_exp_array_api_TupleInt___init__ (vec-empty )))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.RecursiveValue,egglog.builtins.i64] (UnstableFn (i64 ) egglog.exp.array_api.RecursiveValue))
(rule ((= _x (egglog_exp_array_api_NDArray_fn (egglog_exp_array_api_TupleInt___init__ _vi) _dtype _idx_fn))
(egglog_exp_array_api_NDArray_to_recursive_value _x)
(> (vec-length _vi) 0)
(= (vec-get _vi 0) (egglog_exp_array_api_Int___init__ _i)))
((union (egglog_exp_array_api_NDArray_to_recursive_value _x) (egglog_exp_array_api_RecursiveValue_vec (unstable-vec-map (unstable-fn "_x-egglog_exp_array_api_NDArray__j-i64__egglog_exp_array_api_NDArray_to_recursive_value__egglog_exp_array_api_NDArray_partial_index__x__egglog_exp_array_api_Int___init____j___" _x) (vec-range _i))))
(subsume (egglog_exp_array_api_NDArray_to_recursive_value _x)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_RecursiveValue_shape (egglog_exp_array_api_RecursiveValue___init__ _v)) (egglog_exp_array_api_TupleInt___init__ (vec-empty )) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_RecursiveValue_shape (egglog_exp_array_api_RecursiveValue_vec _vs)) (egglog_exp_array_api_TupleInt___add__ (egglog_exp_array_api_TupleInt___init__ (vec-of (egglog_exp_array_api_Int___init__ (vec-length _vs)))) (egglog_exp_array_api_RecursiveValue_shape (vec-get _vs 0))) :when ((> (vec-length _vs) 0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_RecursiveValue_shape (egglog_exp_array_api_RecursiveValue_vec _vs)) (egglog_exp_array_api_TupleInt___init__ (vec-of (egglog_exp_array_api_Int___init__ 0))) :when ((= (vec-length _vs) 0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_RecursiveValue___getitem__ (egglog_exp_array_api_RecursiveValue___init__ _v) _vi) _v :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _rv (egglog_exp_array_api_RecursiveValue_vec _vs))
(= _v (egglog_exp_array_api_RecursiveValue___getitem__ _rv _vi))
(> (vec-length _vi) 0)
(= (vec-get _vi 0) (egglog_exp_array_api_Int___init__ _k))
(= _rv1 (vec-get _vs _k))
(= _vi1 (vec-remove _vi 0)))
((union _v (egglog_exp_array_api_RecursiveValue___getitem__ _rv1 _vi1))
(subsume (egglog_exp_array_api_RecursiveValue___getitem__ _rv _vi)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(constructor _idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.Int] i64) egglog.exp.array_api.Value)
(rewrite (_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ _idx_fn _i) (unstable-app _idx_fn (egglog_exp_array_api_Int___init__ _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _ti (egglog_exp_array_api_TupleValue___init__ _vs))
(= _ti (egglog_exp_array_api_TupleValue___init__ _vs2))
(!= _vs _vs2))
((vec-union _vs _vs2))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_TupleValue_length (egglog_exp_array_api_TupleValue_fn _i2 _idx_fn)) _i2 :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleValue___getitem__ (egglog_exp_array_api_TupleValue_fn _i2 _idx_fn) _i) (unstable-app _idx_fn (egglog_exp_array_api_check_index _i2 _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleValue_length (egglog_exp_array_api_TupleValue___init__ _vs)) (egglog_exp_array_api_Int___init__ (vec-length _vs)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleValue___getitem__ (egglog_exp_array_api_TupleValue___init__ _vs) (egglog_exp_array_api_Int___init__ _k)) (vec-get _vs _k) :subsume :when ((>= _k 0) (< _k (vec-length _vs))) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.builtins.i64] (UnstableFn (i64 ) egglog.exp.array_api.Value))
(rewrite (egglog_exp_array_api_TupleValue_fn (egglog_exp_array_api_Int___init__ _k) _idx_fn) (egglog_exp_array_api_TupleValue___init__ (unstable-vec-map (unstable-fn "_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__" _idx_fn) (vec-range _k))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleValue] (UnstableFn () egglog.exp.array_api.TupleValue))
(constructor egglog_exp_array_api_TupleValue_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.TupleValue] egglog.builtins.UnstableFn[egglog.exp.array_api.TupleValue]) egglog.exp.array_api.TupleValue)
(rewrite (egglog_exp_array_api_TupleValue_if_ (egglog_exp_array_api_Boolean___init__ true) _lt _lf) (unstable-app _lt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleValue_if_ (egglog_exp_array_api_Boolean___init__ false) _lt _lf) (unstable-app _lf) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType_int64 () egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_Value_dtype (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_DType_int64 ) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_dtype (egglog_exp_array_api_Value_from_float _f)) (egglog_exp_array_api_DType_float64 ) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType_bool () egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_Value_dtype (egglog_exp_array_api_Value_from_bool _b)) (egglog_exp_array_api_DType_bool ) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_to_int (egglog.exp.array_api.Value) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Value_to_int (egglog_exp_array_api_Value_from_int _i)) _i :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_to_bool (egglog.exp.array_api.Value) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value_to_bool (egglog_exp_array_api_Value_from_bool _b)) _b :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_to_truthy_value (egglog_exp_array_api_Value_from_bool _b)) (egglog_exp_array_api_Value_from_bool _b) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_conj (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_Value_conj (egglog_exp_array_api_Value_from_float _f)) (egglog_exp_array_api_Value_from_float _f) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_real (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(rewrite (egglog_exp_array_api_Value_real (egglog_exp_array_api_Value_from_float _f)) (egglog_exp_array_api_Value_from_float _f) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_real (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_Value_from_int _i) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_conj (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_Value_from_int _i) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value_sqrt (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_Float___pow__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value_sqrt (egglog_exp_array_api_Value_from_float _f)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___pow__ _f (egglog_exp_array_api_Float___init__ 0.5))) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float_rational (BigRat) egglog.exp.array_api.Float :cost 2)
(rewrite (egglog_exp_array_api_Value___add__ (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_rational (bigrat (bigint 0) (bigint 1)))) _v) _v :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Boolean___init__ true) _vt _v1t) (unstable-app _vt) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_if_ (egglog_exp_array_api_Boolean___init__ false) _vt _v1t) (unstable-app _v1t) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___eq__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Int___eq__ _i _i1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___eq__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___eq__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Float___eq__ _f _f1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Boolean___eq__ (egglog.exp.array_api.Boolean egglog.exp.array_api.Boolean) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___eq__ (egglog_exp_array_api_Value_from_bool _b) (egglog_exp_array_api_Value_from_bool _b1)) (egglog_exp_array_api_Boolean___eq__ _b _b1) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___ge__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Int___ge__ _i _i1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___ge__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___ge__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Float___ge__ _f _f1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___le__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___le__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Int___le__ _i _i1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___le__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___le__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Float___le__ _f _f1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___gt__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___gt__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Int___gt__ _i _i1) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___gt__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___gt__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Float___gt__ _f _f1) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___lt__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Int___lt__ _i _i1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___lt__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Value___lt__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_bool (egglog_exp_array_api_Float___lt__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___truediv__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value___truediv__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___truediv__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___mul__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value___mul__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___mul__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___mul__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___mul__ _i _i1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___add__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value___add__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___add__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___add__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___add__ _i _i1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___sub__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value___sub__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___sub__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___sub__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___sub__ _i _i1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___pow__ _f _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___pow__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_int _i1)) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___pow__ _i _i1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value_from_int _i) (egglog_exp_array_api_Value_from_float _f1)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___pow__ (egglog_exp_array_api_Float_from_int _i) _f1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Value___abs__ (egglog.exp.array_api.Value) egglog.exp.array_api.Value)
(constructor egglog_exp_array_api_Int___abs__ (egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Value___abs__ (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_Value_from_int (egglog_exp_array_api_Int___abs__ _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___abs__ (egglog.exp.array_api.Float) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Value___abs__ (egglog_exp_array_api_Value_from_float _f)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___abs__ _f)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value___abs__ _v) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_rational (bigrat (bigint 2) (bigint 1))))) (egglog_exp_array_api_Value___pow__ _v (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_from_int (egglog_exp_array_api_Int___init__ 2)))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value___truediv__ _v1 _v) _v2) (egglog_exp_array_api_Value___truediv__ (egglog_exp_array_api_Value___pow__ _v1 _v2) (egglog_exp_array_api_Value___pow__ _v _v2)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ (egglog_exp_array_api_Value___pow__ _v _v1) _v2) (egglog_exp_array_api_Value___pow__ _v (egglog_exp_array_api_Value___mul__ _v1 _v2)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___mul__ (egglog_exp_array_api_Value_from_float _f) (egglog_exp_array_api_Value_from_int _i)) (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float___mul__ _f (egglog_exp_array_api_Float_from_int _i))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value___pow__ _v (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_rational (bigrat (bigint 1) (bigint 1))))) _v :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Value_from_float (egglog_exp_array_api_Float_from_int _i)) (egglog_exp_array_api_Value_from_int _i) :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.exp.array_api.IsDtypeKind)
(constructor egglog_exp_array_api_isdtype (egglog.exp.array_api.DType egglog.exp.array_api.IsDtypeKind) egglog.exp.array_api.Boolean)
(constructor egglog_exp_array_api_DType_float32 () egglog.exp.array_api.DType)
(constructor egglog_exp_array_api_IsDtypeKind_string (String) egglog.exp.array_api.IsDtypeKind)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_IsDtypeKind_string "integral")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_IsDtypeKind_string "integral")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType_object () egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_IsDtypeKind_string "integral")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_IsDtypeKind_string "integral")) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType_int32 () egglog.exp.array_api.DType)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_IsDtypeKind_string "integral")) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_IsDtypeKind_string "real floating")) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_IsDtypeKind_string "real floating")) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_IsDtypeKind_string "real floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_IsDtypeKind_string "real floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_IsDtypeKind_string "real floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_IsDtypeKind_string "complex floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_IsDtypeKind_string "complex floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_IsDtypeKind_string "complex floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_IsDtypeKind_string "complex floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_isdtype (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_IsDtypeKind_string "complex floating")) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_IsDtypeKind_NULL () egglog.exp.array_api.IsDtypeKind)
(rewrite (egglog_exp_array_api_isdtype _d (egglog_exp_array_api_IsDtypeKind_NULL )) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_IsDtypeKind_dtype (egglog.exp.array_api.DType) egglog.exp.array_api.IsDtypeKind)
(rewrite (egglog_exp_array_api_isdtype _d (egglog_exp_array_api_IsDtypeKind_dtype _d)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_IsDtypeKind___or__ (egglog.exp.array_api.IsDtypeKind egglog.exp.array_api.IsDtypeKind) egglog.exp.array_api.IsDtypeKind :cost 10)
(rewrite (egglog_exp_array_api_isdtype _d (egglog_exp_array_api_IsDtypeKind___or__ _k1 _k2)) (egglog_exp_array_api_Boolean___or__ (egglog_exp_array_api_isdtype _d _k1) (egglog_exp_array_api_isdtype _d _k2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_IsDtypeKind___or__ _k1 (egglog_exp_array_api_IsDtypeKind_NULL )) _k1 :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_DType___eq__ (egglog.exp.array_api.DType egglog.exp.array_api.DType) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_Boolean___init__ true) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_DType_float32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_DType_int32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_DType_int64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float64 ) (egglog_exp_array_api_DType_object )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_DType_float32 )) (egglog_exp_array_api_Boolean___init__ true) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_DType_int32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_DType_int64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_float32 ) (egglog_exp_array_api_DType_object )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_DType_float32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_DType_int32 )) (egglog_exp_array_api_Boolean___init__ true) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_DType_int64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int32 ) (egglog_exp_array_api_DType_object )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_DType_float32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_DType_int32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_DType_int64 )) (egglog_exp_array_api_Boolean___init__ true) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_int64 ) (egglog_exp_array_api_DType_object )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_DType_float64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_DType_float32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_DType_int32 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_DType_int64 )) (egglog_exp_array_api_Boolean___init__ false) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_DType___eq__ (egglog_exp_array_api_DType_object ) (egglog_exp_array_api_DType_object )) (egglog_exp_array_api_Boolean___init__ true) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.exp.array_api.Int] i64) egglog.exp.array_api.TupleInt)
(rewrite (_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ _idx_fn _i) (unstable-app _idx_fn (egglog_exp_array_api_Int___init__ _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.Vec[egglog.exp.array_api.TupleInt] (Vec egglog.exp.array_api.TupleInt))
(constructor egglog_exp_array_api_TupleTupleInt___init__ (egglog.builtins.Vec[egglog.exp.array_api.TupleInt]) egglog.exp.array_api.TupleTupleInt)
(rule ((= _ti (egglog_exp_array_api_TupleTupleInt___init__ _vs))
(= _ti (egglog_exp_array_api_TupleTupleInt___init__ _vs2))
(!= _vs _vs2))
((vec-union _vs _vs2))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_TupleTupleInt_length (egglog_exp_array_api_TupleTupleInt_fn _i2 _idx_fn)) _i2 :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt___getitem__ (egglog_exp_array_api_TupleTupleInt_fn _i2 _idx_fn) _i) (unstable-app _idx_fn (egglog_exp_array_api_check_index _i2 _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt_length (egglog_exp_array_api_TupleTupleInt___init__ _vs)) (egglog_exp_array_api_Int___init__ (vec-length _vs)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt___getitem__ (egglog_exp_array_api_TupleTupleInt___init__ _vs) (egglog_exp_array_api_Int___init__ _k)) (vec-get _vs _k) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleInt,egglog.builtins.i64] (UnstableFn (i64 ) egglog.exp.array_api.TupleInt))
(rewrite (egglog_exp_array_api_TupleTupleInt_fn (egglog_exp_array_api_Int___init__ _k) _idx_fn) (egglog_exp_array_api_TupleTupleInt___init__ (unstable-vec-map (unstable-fn "_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_TupleInt_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__" _idx_fn) (vec-range _k))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.TupleTupleInt] (UnstableFn () egglog.exp.array_api.TupleTupleInt))
(constructor egglog_exp_array_api_TupleTupleInt_if_ (egglog.exp.array_api.Boolean egglog.builtins.UnstableFn[egglog.exp.array_api.TupleTupleInt] egglog.builtins.UnstableFn[egglog.exp.array_api.TupleTupleInt]) egglog.exp.array_api.TupleTupleInt)
(rewrite (egglog_exp_array_api_TupleTupleInt_if_ (egglog_exp_array_api_Boolean___init__ true) _lt _lf) (unstable-app _lt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleTupleInt_if_ (egglog_exp_array_api_Boolean___init__ false) _lt _lf) (unstable-app _lf) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.exp.array_api.Int] i64) egglog.exp.array_api.Int)
(rewrite (_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__ _idx_fn _i) (unstable-app _idx_fn (egglog_exp_array_api_Int___init__ _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _ti (egglog_exp_array_api_TupleInt___init__ _vs))
(= _ti (egglog_exp_array_api_TupleInt___init__ _vs2))
(!= _vs _vs2))
((vec-union _vs _vs2))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_TupleInt_fn _i2 _idx_fn)) _i2 :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_TupleInt_fn _i2 _idx_fn) _i) (unstable-app _idx_fn (egglog_exp_array_api_check_index _i2 _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_length (egglog_exp_array_api_TupleInt___init__ _vs)) (egglog_exp_array_api_Int___init__ (vec-length _vs)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt___getitem__ (egglog_exp_array_api_TupleInt___init__ _vs) (egglog_exp_array_api_Int___init__ _k)) (vec-get _vs _k) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_if_ (egglog_exp_array_api_Boolean___init__ true) _lt _lf) (unstable-app _lt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_TupleInt_if_ (egglog_exp_array_api_Boolean___init__ false) _lt _lf) (unstable-app _lf) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(sort egglog.builtins.UnstableFn[egglog.exp.array_api.Int,egglog.builtins.i64] (UnstableFn (i64 ) egglog.exp.array_api.Int))
(rewrite (egglog_exp_array_api_TupleInt_fn (egglog_exp_array_api_Int___init__ _k) _idx_fn) (egglog_exp_array_api_TupleInt___init__ (unstable-vec-map (unstable-fn "_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Int_egglog_exp_array_api_Int___i-i64__unstable-app__idx_fn__egglog_exp_array_api_Int___init____i__" _idx_fn) (vec-range _k))) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float_from_int (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Float___init__ (to-f64 _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float_abs (egglog_exp_array_api_Float___init__ _f)) (egglog_exp_array_api_Float___init__ _f) :when ((>= _f 0.0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float_abs (egglog_exp_array_api_Float___init__ _f)) (egglog_exp_array_api_Float___init__ (neg _f)) :when ((< _f 0.0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float_rational (bigrat (bigint (to-i64 _f)) (bigint 1))) :when ((= (to-f64 (to-i64 _f)) _f)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float_from_int (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Float_rational (bigrat (bigint _i) (bigint 1))) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___add__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Float___init__ (+ _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___sub__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Float___init__ (- _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___mul__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Float___init__ (* _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___truediv__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r1)) (egglog_exp_array_api_Float_rational (/ _r _r1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___add__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r1)) (egglog_exp_array_api_Float_rational (+ _r _r1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___sub__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r1)) (egglog_exp_array_api_Float_rational (- _r _r1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___mul__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r1)) (egglog_exp_array_api_Float_rational (* _r _r1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___pow__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Float___init__ (^ _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___eq__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___eq__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ false) :when ((!= _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___ne__ (egglog.exp.array_api.Float egglog.exp.array_api.Float) egglog.exp.array_api.Boolean)
(rewrite (egglog_exp_array_api_Float___ne__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ true) :when ((!= _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___ne__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___ge__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ true) :when ((>= _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___ge__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ false) :when ((< _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___le__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ true) :when ((<= _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___le__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ false) :when ((> _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___gt__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ true) :when ((> _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___gt__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ false) :when ((<= _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___lt__ (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2)) (egglog_exp_array_api_Boolean___init__ true) :when ((< _f _f2)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___eq__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___eq__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_Float_rational _r1)) (egglog_exp_array_api_Boolean___init__ false) :when ((!= _r _r1)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Float___round__ (egglog.exp.array_api.Float egglog.exp.array_api.OptionalInt) egglog.exp.array_api.Float)
(rewrite (egglog_exp_array_api_Float___round__ (egglog_exp_array_api_Float_rational _r) (egglog_exp_array_api_OptionalInt_none )) (egglog_exp_array_api_Float_rational (round _r)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Float___abs__ (egglog_exp_array_api_Float___init__ _f)) (egglog_exp_array_api_Float___init__ (abs _f)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= (egglog_exp_array_api_Float___init__ _f) (egglog_exp_array_api_Float___init__ _f2))
(!= _f _f2))
((panic "Different floats cannot be equal"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _r (egglog_exp_array_api_Int___eq__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(!= _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ false)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Int___ge__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _r (egglog_exp_array_api_Int___ge__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(> _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ true)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= _r (egglog_exp_array_api_Int___ge__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(< _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ false)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Int___lt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _r (egglog_exp_array_api_Int___lt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(< _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ true)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= _r (egglog_exp_array_api_Int___lt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(> _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ false)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Int___gt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= _r (egglog_exp_array_api_Int___gt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(> _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ true)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= _r (egglog_exp_array_api_Int___gt__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)))
(< _i _j))
((union _r (egglog_exp_array_api_Boolean___init__ false)))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j))
(!= _i _j))
((panic "Real ints cannot be equal to different ints"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (+ _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int___sub__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (- _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int___mul__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (* _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int___floordiv__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (/ _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int___mod__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (% _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___and__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___and__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (& _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___or__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___or__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (| _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___xor__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___xor__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (^ _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___lshift__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___lshift__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (<< _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___rshift__ (egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___rshift__ (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j)) (egglog_exp_array_api_Int___init__ (>> _i _j)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___invert__ (egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___invert__ (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Int___init__ (not-i64 _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int___abs__ (egglog_exp_array_api_Int___init__ _i)) (egglog_exp_array_api_Int___init__ (abs _i)) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Boolean___init__ true) _ot _bt) (unstable-app _ot) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Int_if_ (egglog_exp_array_api_Boolean___init__ false) _ot _bt) (unstable-app _bt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_Int___round__ (egglog.exp.array_api.Int egglog.exp.array_api.OptionalInt) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_Int___round__ _o (egglog_exp_array_api_OptionalInt_none )) _o :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= (egglog_exp_array_api_Int_NEVER ) (egglog_exp_array_api_Int___init__ _i)))
((panic "Int.NEVER cannot be equal to any real int"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rule ((= (egglog_exp_array_api_Int___init__ _i) (egglog_exp_array_api_Int___init__ _j))
(!= _i _j))
((panic "Different ints cannot be equal"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Boolean___or__ (egglog_exp_array_api_Boolean___init__ true) _x) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___or__ (egglog_exp_array_api_Boolean___init__ false) _x) _x :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___and__ (egglog_exp_array_api_Boolean___init__ true) _x) _x :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___and__ (egglog_exp_array_api_Boolean___init__ false) _x) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___invert__ (egglog_exp_array_api_Boolean___init__ true)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___invert__ (egglog_exp_array_api_Boolean___init__ false)) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= (egglog_exp_array_api_Boolean___init__ false) (egglog_exp_array_api_Boolean___init__ true)))
((panic "False cannot equal True"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(rewrite (egglog_exp_array_api_Boolean___eq__ _x _x) (egglog_exp_array_api_Boolean___init__ true) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___eq__ (egglog_exp_array_api_Boolean___init__ false) (egglog_exp_array_api_Boolean___init__ true)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean___eq__ (egglog_exp_array_api_Boolean___init__ true) (egglog_exp_array_api_Boolean___init__ false)) (egglog_exp_array_api_Boolean___init__ false) :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean_if_ (egglog_exp_array_api_Boolean___init__ true) _bt _bf) (unstable-app _bt) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rewrite (egglog_exp_array_api_Boolean_if_ (egglog_exp_array_api_Boolean___init__ false) _bt _bf) (unstable-app _bf) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(rule ((= (egglog_exp_array_api_Boolean___init__ _b) (egglog_exp_array_api_Boolean___init__ _b1))
(!= _b _b1))
((panic "Different booleans cannot be equal"))
:ruleset egglog.exp.array_api.array_api_ruleset )
(constructor _index-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__res-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___add____egglog_exp_array_api_Int___mul____res__egglog_exp_array_api_TupleInt___getitem____shape__i____egglog_exp_array_api_TupleInt___getitem____index__i__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt egglog.exp.array_api.Int egglog.exp.array_api.Int) egglog.exp.array_api.Int)
(rewrite (_index-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__res-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___add____egglog_exp_array_api_Int___mul____res__egglog_exp_array_api_TupleInt___getitem____shape__i____egglog_exp_array_api_TupleInt___getitem____index__i__ _index _shape _res _i) (egglog_exp_array_api_Int___add__ (egglog_exp_array_api_Int___mul__ _res (egglog_exp_array_api_TupleInt___getitem__ _shape _i)) (egglog_exp_array_api_TupleInt___getitem__ _index _i)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_ravel_index (egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.Int)
(rewrite (egglog_exp_array_api_ravel_index _index _shape) (egglog_exp_array_api_TupleInt_foldl (egglog_exp_array_api_TupleInt_range (egglog_exp_array_api_TupleInt_length _shape)) (unstable-fn "_index-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__res-egglog_exp_array_api_Int__i-egglog_exp_array_api_Int__egglog_exp_array_api_Int___add____egglog_exp_array_api_Int___mul____res__egglog_exp_array_api_TupleInt___getitem____shape__i____egglog_exp_array_api_TupleInt___getitem____index__i__" _index _shape) (egglog_exp_array_api_Int___init__ 0)) :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor _acc-egglog_exp_array_api_TupleInt__dim-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_drop_last__acc___egglog_exp_array_api_Int___mod____egglog_exp_array_api_TupleInt_last__acc___dim____egglog_exp_array_api_Int___floordiv____egglog_exp_array_api_TupleInt_last__acc___dim__ (egglog.exp.array_api.TupleInt egglog.exp.array_api.Int) egglog.exp.array_api.TupleInt)
(rewrite (_acc-egglog_exp_array_api_TupleInt__dim-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_drop_last__acc___egglog_exp_array_api_Int___mod____egglog_exp_array_api_TupleInt_last__acc___dim____egglog_exp_array_api_Int___floordiv____egglog_exp_array_api_TupleInt_last__acc___dim__ _acc _dim) (egglog_exp_array_api_TupleInt_append (egglog_exp_array_api_TupleInt_append (egglog_exp_array_api_TupleInt_drop_last _acc) (egglog_exp_array_api_Int___mod__ (egglog_exp_array_api_TupleInt_last _acc) _dim)) (egglog_exp_array_api_Int___floordiv__ (egglog_exp_array_api_TupleInt_last _acc) _dim)) :subsume :ruleset egglog.exp.array_api.array_api_ruleset)
(constructor egglog_exp_array_api_unravel_index (egglog.exp.array_api.Int egglog.exp.array_api.TupleInt) egglog.exp.array_api.TupleInt)
(rewrite (egglog_exp_array_api_unravel_index _flat_index _shape) (egglog_exp_array_api_TupleInt_reverse (egglog_exp_array_api_TupleInt_drop_last (egglog_exp_array_api_TupleInt_foldl_tuple_int (egglog_exp_array_api_TupleInt_reverse _shape) (unstable-fn "_acc-egglog_exp_array_api_TupleInt__dim-egglog_exp_array_api_Int__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_append__egglog_exp_array_api_TupleInt_drop_last__acc___egglog_exp_array_api_Int___mod____egglog_exp_array_api_TupleInt_last__acc___dim____egglog_exp_array_api_Int___floordiv____egglog_exp_array_api_TupleInt_last__acc___dim__") (egglog_exp_array_api_TupleInt___init__ (vec-of _flat_index))))) :ruleset egglog.exp.array_api.array_api_ruleset)
(ruleset egglog.exp.array_api.array_api_functional_ruleset)
(constructor _idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___old_shape-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__idx-egglog_exp_array_api_TupleInt__unstable-app__idx_fn__egglog_exp_array_api_unravel_index__egglog_exp_array_api_ravel_index__idx__shape___old_shape__ (egglog.builtins.UnstableFn[egglog.exp.array_api.Value,egglog.exp.array_api.TupleInt] egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt egglog.exp.array_api.TupleInt) egglog.exp.array_api.Value)
(rewrite (_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___old_shape-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__idx-egglog_exp_array_api_TupleInt__unstable-app__idx_fn__egglog_exp_array_api_unravel_index__egglog_exp_array_api_ravel_index__idx__shape___old_shape__ _idx_fn _old_shape _shape _idx) (unstable-app _idx_fn (egglog_exp_array_api_unravel_index (egglog_exp_array_api_ravel_index _idx _shape) _old_shape)) :subsume :ruleset egglog.exp.array_api.array_api_functional_ruleset)
(rewrite (egglog_exp_array_api_reshape (egglog_exp_array_api_NDArray_fn _old_shape _dtype _idx_fn) _shape _ob) (egglog_exp_array_api_NDArray_fn _shape _dtype (unstable-fn "_idx_fn-egglog_builtins_UnstableFn_egglog_exp_array_api_Value_egglog_exp_array_api_TupleInt___old_shape-egglog_exp_array_api_TupleInt__shape-egglog_exp_array_api_TupleInt__idx-egglog_exp_array_api_TupleInt__unstable-app__idx_fn__egglog_exp_array_api_unravel_index__egglog_exp_array_api_ravel_index__idx__shape___old_shape__" _idx_fn _old_shape _shape)) :subsume :ruleset egglog.exp.array_api.array_api_functional_ruleset)
(unstable-combined-ruleset combined_ruleset_4478121168 egglog.exp.array_api.array_api_ruleset egglog.exp.array_api.array_api_functional_ruleset)
(run-schedule (saturate (seq (run combined_ruleset_4478121168) (run))))
(run-schedule (run egglog.exp.array_api.array_api_ruleset))
(extract $__expr_1598708161566475080 0)
(ruleset __main__._recursive_value)
(rule ((= _rv (egglog_exp_array_api_RecursiveValue_vec _vs))
(= _v (egglog_exp_array_api_RecursiveValue___getitem__ _rv _vi))
(> (vec-length _vi) 0)
(= (vec-get _vi 0) (egglog_exp_array_api_Int___init__ _k))
(= _rv1 (vec-get _vs _k))
(= _vi1 (vec-remove _vi 0)))
((union _v (egglog_exp_array_api_RecursiveValue___getitem__ _rv1 _vi1))
(subsume (egglog_exp_array_api_RecursiveValue___getitem__ _rv _vi)))
:ruleset __main__._recursive_value )
(run-schedule (run __main__._recursive_value))
(extract $__expr_1598708161566475080 0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment