fact: Definition eval: forall n m, kat_expr n m -> X (f' n) (f' m) := syntax.eval (fun a => match a return X (f' (s' a)) (f' (t' a)) with | inl a => val (fs a) | inr (n,p) => inj (lsyntax.eval (fp n) p) end).
imports: lsyntax ordinal lset positives kat gregex syntax