fact: Fixpoint nat_to_term' (k: nat) (n: nat) : mset_term := match k with | 0 => mset_term_zero | S k => match n with | 0 => mset_term_zero | S n => match Cantor.of_nat n with | (0, 0) => mset_term_zero | (0, S x) => mset_term_var x | (S nt, 0) => mset_term_h (nat_to_term' k nt) | (S nt, S nu) => mset_term_plus (nat_to_term' k nt) (nat_to_term' k nu) end end end.
imports: Arith Lia List Permutation Undecidability.SetConstraints.FMsetC Undecidability.SetConstraints.Util.Facts Undecidability.Synthetic.Definitions ssreflect ssrbool ssrfun