fact: Definition RLiteralConstructor_beq {t1 t2} (e1 : RLiteralConstructor t1) (e2 : RLiteralConstructor t2) : bool := match e1, e2 with | Rpair A B, Rpair A' B' => SimpleTypeCode_beq A A' && SimpleTypeCode_beq B B' | Rpair _ _, _ => false | RS, RS => true | RS, _ => false | RO, RO => true | RO, _ => false | Rnil A, Rnil A' => SimpleTypeCode_beq A A' | Rnil _, _ => false | Rcons A, Rcons A' => SimpleTypeCode_beq A A' | Rcons _, _ => false | Rbool b, Rbool b' => bool_beq b b' | Rbool _, _ => false | Rrchar_expr_ascii x, Rrchar_expr_ascii x' => Reflective.RCharExpr_beq ascii_beq x x' | Rrchar_expr_ascii _, _ => false | Rstring x, Rstring x' => string_beq x x' | Rstring _, _ => false | Rritem_ascii x, Rritem_ascii x' => Reflective.ritem_beq ascii_beq x x' | Rritem_ascii _, _ => false end%bool.
imports: Coq.Strings.Ascii Fiat.Parsers.Reflective.Syntax Fiat.Parsers.ContextFreeGrammar.Reflective Fiat.Common.Equality Fiat.Common.BoolFacts