Inductive variable := x | y.Inductive variable := x | y.Inductive variable := x | y.Inductive function := plus | main | errF.Inductive function := plus | main | errF.Inductive function := plus | main | errF.Inductive function := plus | main | errF.Inductive constructor := zero | succ | errC.Inductive constructor := zero | succ | errC.Inductive constructor := zero | succ | errC.Inductive constructor := zero | succ | errC.Definition variable := variable.Definition function := function.Definition constructor := constructor.Definition function_default := errF.Definition constructor_default := errC.Definition variable_eq_dec := variable_eq_dec.Definition function_eq_dec := function_eq_dec.Definition constructor_eq_dec := constructor_eq_dec.Module Import Syn := Interface.MkSyn(PlusSyntax).Definition var_coercion : variable -> term := var_coercion_gen.Definition prog := plus_prog.Module Import Prog := Syn.MkProg (PlusProg).Definition rank : function -> nat := ltac:(autorank function_beq ranklist).(* It's a program *)
Proposition UnaryAdd_is_wf: wf_prog.(* PPO *)
Proposition UnaryAdd_is_ppo : PPO_prog rank.(* QI *)
Definition cs (c : constructor) := 1.

Lemma qic_nonzero : constructor_non_zero cs.