Section recursive_descent_parser.
Context {Char} {HSL : StringLike Char} {HSLP : StringLikeProperties Char} (G : grammar Char).
Context {data : @boolean_parser_dataT Char _}
{cdata : @boolean_parser_completeness_dataT' Char _ G data}
{rdata : @parser_removal_dataT' _ G _}
{gvalid : grammar_valid G}.
Local Notation dec T := (T + (T -> False))%type (only parsing).
Local Notation iffT x y := ((x -> y) * (y -> x))%type (only parsing).

Lemma dec_prod {A B} (HA : dec A) (HB : dec B) : dec (A * B).