fact: Definition if_aggregate3 {A} (b1 b2 b3 b4 : bool) (x y z w : A) (H : b1 = false -> (b2 || b3)%bool = true -> b4 = true -> False) : (If b1 Then x Else If b2 Then y Else If b3 Then z Else If b4 Then x Else w) = (If (b1 || b4)%opt2_bool Then x Else If b2 Then y Else If b3 Then z Else w) := if_aggregate3 _ _ x y z w H.
imports: Fiat.Parsers.ContextFreeGrammar.Core Fiat.Parsers.ContextFreeGrammar.PreNotations Fiat.Parsers.StringLike.FirstCharSuchThat Coq.Strings.String Coq.Arith.PeanoNat Fiat.Computation.Core Coq.Program.Program Fiat.Computation.ApplyMonad Fiat.Computation.SetoidMorphisms Fiat.Common Fiat.Parsers.StringLike.Core Fiat.Parsers.ContextFreeGrammar.Equality Fiat.Parsers.ContextFreeGrammar.Carriers Fiat.Common.Equality Fiat.Common.BoolFacts Fiat.Common.NatFacts Coq.Lists.List