Hint Rewrite mapo_app : list.
Section TrivialLift.
Variable Gamma' : finType.
Variable Gamma : finType.
Variable f : Gamma' -> Gamma.
Variable g : Gamma -> option Gamma'.
Hypothesis inv : forall x, g (f x) = Some x.
Hypothesis tight : forall x y, g x = Some y -> f y = x.
Definition up (G : cfg Gamma') : cfg Gamma :=
(f (startsym G), map (fun '(x,A) => (f x, map f A) ) (rules G)).

Lemma up_char G x :
rewt G [(startsym G)] x <-> rewt (up G) [(startsym (up G))] (map f x).