apply cancelLeft_len
α nt : Type
P : Finset α → Finset nt → Type
i : Production.ContextFree α nt P
G : Grammar P
lhs rhs : Word ({ x // x ∈ G.V } ⊕ { x // x ∈ G.Z })
val✝ : { x // x ∈ G.Z }
tail✝ : Word ({ x // x ∈ G.V } ⊕ { x // x ∈ G.Z })
h_lhs : lhs = Sum.inr val✝ :: tail✝
a✝ : Word { x // x ∈ G.Z }
h_rhs : rhs = Sum.inr <$> a✝
d : Derivation G lhs rhs
u'✝ : Word ({ x // x ∈ G.V } ⊕ { x // x ∈ G.Z })
step✝ : DerivationStep G lhs
x✝ : Derivation G u'✝ rhs
sound✝ : DerivationStep.result step✝ = u'✝
⊢ len (cancelLeft x✝ ⋯ h_rhs) = len x✝
no goals