fact: Fixpoint FunMax {fDom : list Type} {fCod : Type} (fSet' fSet : funType fDom fCod) {struct fDom} : funType fDom fCod := match fDom as fDom' return funType fDom' fCod -> funType fDom' fCod -> funType fDom' fCod with | nil => fun fSet' fSet => @Intersection _ fSet' fSet | cons T fDom' => fun fSet' fSet => (fun (t : T) => FunMax (fSet' t) (fSet t)) end fSet' fSet.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Sets.Ensembles Coq.ZArith.ZArith Coq.Classes.Morphisms Coq.Classes.SetoidTactics Fiat.Computation Fiat.Computation.SetoidMorphisms Coq.Logic.FunctionalExtensionality