diff --git a/ALANNTest/SyllogisticInference.fs b/ALANNTest/SyllogisticInference.fs new file mode 100644 index 0000000000000000000000000000000000000000..cc7d81dcf88cd6e6d16141cbe9e4196690fe8d79 --- /dev/null +++ b/ALANNTest/SyllogisticInference.fs @@ -0,0 +1,25 @@ +module SyllogisticInference + +open Types +open FirstOrderSyllogistic +open HigherOrderSyllogistic + +let (|IsFirstOrder|_|) = + function + | Term(Inh, _), Term(Inh, _) + | Term(Inh, _), Term(Sim, _) + | Term(Sim, _), Term(Inh, _) + | Term(Sim, _), Term(Sim, _) -> Some() | _ -> None + +let (|IsHigherOrder|_|) = + function + | Term(Imp, _), Term(Imp, _) + | Term(Imp, _), Term(Equ, _) + | Term(Equ, _), Term(Imp, _) + | Term(Equ, _), Term(Equ, _) -> Some() | _ -> None + +let SyllogisticInference st1 st2 tv1 tv2 = + match st1, st2 with + | IsFirstOrder -> firstOrderSyllogisticInference st1 tv1 st2 tv2 + | IsHigherOrder -> higherOrderSyllogisticInference st1 tv1 st2 tv2 + | _ -> [] \ No newline at end of file