Module Import Prog := Syn.MkProg (PlusProg).
Definition rank : function -> nat := ltac:(autorank function_beq ranklist).
Fixpoint quote_value (n : nat) : value :=
match n with
| 0    => c_capply zero []
| S n' => c_capply succ [quote_value n']
end.
(* QI *)
Definition cs (c : constructor) := 1. (* same for all *)

Proposition qi_is_valid : valid_QI mcs qic qif cs.