The goal of an LFF learner is to learn hypothesis constraints from failed hypotheses.
[1]}, [2]} introduce hypothesis constraints based on subsumption [3]}.
A clause \(C_1\)  subsumes a clause \(C_2\)  (\(C_1 \preceq C_2\) ) if and only if there exists a substitution \(\theta \)  such that \(C_1\theta \subseteq C_2\) .
A clausal theory \(T_1\)  subsumes a clausal theory \(T_2\)  (\(T_1 \preceq T_2\) ) if and only if \(\forall C_2 \in T_2, \exists C_1 \in T_1\)  such that \(C_1\)  subsumes \(C_2\) .
A clausal theory \(T_1\)  is a specialisation of a clausal theory \(T_2\)  if and only if \(T_2 \preceq T_1\) .
A clausal theory \(T_1\)  is a generalisation of a clausal theory \(T_2\)  if and only if \(T_1 \preceq T_2\) .
If a hypothesis \(H\)  is incomplete, a specialisation constraint prunes specialisations of \(H\) , as they are guaranteed to also be incomplete.
If a hypothesis \(H\)  is inconsistent, a generalisation constraint prunes generalisations of \(H\) , as they are guaranteed to be inconsistent as well.
If a hypothesis \(H\)  is totally incomplete, a redundancy constraint prunes hypotheses that contain a specialisation of \(H\)  as a subset.
