File CoMoLang.Languages
We need Logic.FinFun for a definition of finite Sets.
A formal language is a subset of a finite alphabet, indicated by Pred.
Class Language (Sigma : Set) := {
Pred : let word := list Sigma in word → Prop;
Sigma_fin : Finite Sigma
}
.
Section L_equiv.
Variable Sigma : Set.
Context `(L1 : Language Sigma).
Context `(L2 : Language Sigma).
Pred : let word := list Sigma in word → Prop;
Sigma_fin : Finite Sigma
}
.
Section L_equiv.
Variable Sigma : Set.
Context `(L1 : Language Sigma).
Context `(L2 : Language Sigma).
Two languages are equivalent, iff they accept the same words.