diff --git a/src/purescala/Extensions.scala b/src/purescala/Extensions.scala
index 99c0cf8b8301fb0fa0f658d2701790d414921e9a..791e0e7d4abb511a87f73a7d860359caf00bbae6 100644
--- a/src/purescala/Extensions.scala
+++ b/src/purescala/Extensions.scala
@@ -29,6 +29,11 @@ object Extensions {
     def analyse(program: Program) : Unit
   }
 
+  abstract class Tactic(reporter: Reporter) extends Extension(reporter) {
+    def generatePostconditions(function: FunDef) : Seq[Expr]
+    def generatePreconditions(function: FunDef) : Seq[Expr]
+  }
+
   // The rest of the code is for dynamically loading extensions
 
   private var allLoaded : Seq[Extension] = Nil