Inductive variable := x | y.Inductive variable := x | y.Inductive variable := x | y.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive function := succ | addf | addt | mult | main | errF.Inductive constructor := zero | suc0 | suc1 | errC.Inductive constructor := zero | suc0 | suc1 | errC.Inductive constructor := zero | suc0 | suc1 | errC.Inductive constructor := zero | suc0 | suc1 | errC.Inductive constructor := zero | suc0 | suc1 | 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(BASyntax).Definition var_coercion : variable -> term := var_coercion_gen.Notation "x '!0'" := (capply suc0 (@cons term x nil)) (at level 60).Notation "x '!1'" := (capply suc1 (@cons term x nil)) (at level 60).Definition prog := ba_prog.Module Import Prog := Syn.MkProg (BAProg).Definition rank : function -> nat := ltac:(autorank function_beq ranklist).(* It's a program *)
Proposition BinaryOp_is_wf: wf_prog.(* PPO *)
Proposition BinaryOp_is_ppo : PPO_prog rank.(* QI *)
Definition cs (c : constructor) := 1.

Lemma qic_nonzero : constructor_non_zero cs.