package lambdaKit.model.util; import lambdaKit.model.term.Abstraction; import lambdaKit.model.term.Pair; import lambdaKit.model.term.Term; /* * The normalizer proposes to normalize terms. */ public interface Normalizer { /* * This method returns the leftmost redex of a lambda Term if any, null elsewhere. */ public Pair leftmostRedex(Term container); /* * This method proposes the normalization of a combinator. */ public void normalize(Abstraction container); /* * This method proposes the normalization of a redex. */ public Term normalizeRedex(Pair redex); /* * This method proposes the normalization of a triplet. */ public Term normalizeTriplet(Pair triplet); }