proposition: Lemma canonical_ram_reduce0: forall {A B C} {NA: NatDed A} (P: C -> B -> A), allp (fun x => P (fst x) (snd x)) |-- allp (allp P).
proof: Proof. intros. eapply derives_trans; [| apply allp_derives; intro; apply derives_refl]. rewrite allp_uncurry. apply derives_refl. Qed.
imports: VST.floyd.base VST.floyd.canon VST.floyd.assert_lemmas VST.floyd.client_lemmas VST.floyd.reptype_lemmas VST.floyd.semax_tactics VST.floyd.local2ptree_denote VST.floyd.local2ptree_eval VST.floyd.call_lemmas VST.floyd.diagnosis VST.floyd.forward CertiGraph.lib.Coqlib CertiGraph.veric_ext.SeparationLogic CertiGraph.floyd_ext.ramification CertiGraph.floyd_ext.semax_ram_lemmas CertiGraph.floyd_ext.exists_trick CertiGraph.floyd_ext.closed_lemmas