fact: Definition interp_RLiteralTerm {T} (t : RLiteralTerm T) : interp_TypeCode T := match t with | RLC t' => match t' in (RLiteralConstructor T') return interp_TypeCode T' with | Rpair _ _ => @pair _ _ | RS => S | RO => O | Rnil _ => @nil _ | Rcons _ => @cons _ | Rbool v | Rrchar_expr_ascii v | Rstring v | Rritem_ascii v => v end | RLNC t' => match t' in (RLiteralNonConstructor T') return interp_TypeCode T' with | Rfst _ _ => @fst _ _ | Rsnd _ _ => @snd _ _ | Rnth' A => nth' | Rnth A => @List.nth _ | Rmap A B => @List.map _ _ | Rfold_left A B => @List.fold_left _ _ | Rorb => orb | Randb => andb | Randbr => andbr | Rorbr => orbr | Rminusr => minusr | Rpred => pred | Rplus => plus | Rleb => Compare_dec.leb | Rbeq_nat => Nat.eqb | Rstring_beq => Equality.string_beq | Rlength _ => @List.length _ | Rbool_rect_nodep _ => @bool_rect_nodep _ | Rlist_rect_nodep _ _ => @list_rect_nodep _ _ | Rlist_caset_nodep _ _ => @list_caset_nodep _ _ | Rritem_rect_nodep _ => @Reflective.ritem_rect_nodep _ _ | Rcombine _ _ => @List.combine _ _ | Rfirst_index_default _ => @first_index_default _ | Rrev _ => @List.rev _ | Rup_to => up_to | Rmax => max | Rinterp_RCharExpr_ascii => Reflective.interp_RCharExpr end end.
imports: Coq.Strings.String Fiat.Parsers.Reflective.Syntax Fiat.Parsers.Reflective.Syntactify Fiat.Common.NatFacts Fiat.Common.BoolFacts Fiat.Common.List.Operations