fact: Definition encode_nat (x: nat) : list constraint := let X n := embed (x, n, 1) in [ (X 0 ⊍ X 2, mset_term_var (embed (x, 0, 0))); (X 1 ⊍ X 3, mset_term_var (embed (x, 0, 0))); (X 4 ⊍ X 5, •0 ⊍ (h (X 4))); (X 4 ⊍ X 6, X 0 ⊍ (h (X 6))); (X 6 ⊍ X 7, X 1 ⊍ (h (X 7))) ].
imports: Arith Lia List Permutation Undecidability.SetConstraints.FMsetC Undecidability.SetConstraints.Util.Facts Undecidability.Synthetic.Definitions ssreflect ssrbool ssrfun