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