fact: Fixpoint oplus (alpha beta : T1) : T1 := let fix oplus_aux beta {struct beta} := match alpha, beta with | zero, _ => beta | _, zero => alpha | cons a1 n1 b1, cons a2 n2 b2 => match compare a1 a2 with | Gt => cons a1 n1 (oplus b1 beta) | Lt => cons a2 n2 (oplus_aux b2) | Eq => cons a1 (S (n1 + n2)%nat) (oplus b1 b2) end end in oplus_aux beta.
imports: Coq(Arith ArithRing Lia) hydras(Prelude.More_Arith Prelude.Merge_Sort Epsilon0.T1)