fact: Fixpoint L_recalg n f : list (recalg n) := match f with | 0 => nil | S f => L_recalg n f ++ match_n n [ra_cst f] ++ match_n n [ra_zero] ++ match_n n [ra_succ] ++ [@ra_proj n k | k ∈ all_fins n] ++ match_n n (concat [concat [concat [ @ra_comp k n v1 v2::nil | v2 ∈ list_vectors _ k (L_recalg n f)] | v1 ∈ L_recalg k f] | k ∈ list_le f]) ++ match n as k return list (recalg k) with 0 => nil | S k => (concat [concat [ @ra_rec k v1 v2::nil | v1 ∈ L_recalg k f] | v2 ∈ L_recalg (S (S k)) f]) end ++ match_n n (concat [ @ra_min n v::nil | v ∈ L_recalg (S n) f]) end.
imports: Arith Lia List Bool Eqdep_dec EqdepFacts Undecidability.Shared.Libs.DLW(utils_tac utils_nat utils_list finite pos vec) Undecidability.Synthetic(Definitions DecidabilityFacts EnumerabilityFacts ListEnumerabilityFacts ReducibilityFacts) Undecidability(Shared.ListAutomation Shared.Dec) Undecidability.MuRec.Util.recalg