anchor.diff:  let axiomArithExprToZ3 pmod expr =
       arithExprToZ3 pmod.Context expr |> mapMessages AEBadExpr
   
  -/// Extracts the precondition of a part-axiom.
  -let preOfPartAxiom pa =
  +/// Extracts the outer condition pair of a part-axiom.
  +let cpairOfPartAxiom pa =
       match pa with
  -    | PAAxiom a -> a.AConditions.Pre
  -    | PAWhile (outer = o) -> o.Pre
  -    | PAITE (outer = o) -> o.Pre
  -
  -/// Extracts the postcondition of a part-axiom.
  -let postOfPartAxiom pa =
  -    match pa with
  -    | PAAxiom a -> a.AConditions.Post
  -    | PAWhile (outer = o) -> o.Post
  -    | PAITE (outer = o) -> o.Post
  +    | PAAxiom a -> a.AConditions
  +    | PAWhile (outer = o) -> o
  +    | PAITE (outer = o) -> o
   
   /// Extracts a condition pair from a list of part-axioms.
   ///
  
positive.code: let axiomsToConditionPair axioms =
      match axioms with
      | [] -> None
      | xs -> Some { Pre = preOfPartAxiom xs.[0]
                     Post = postOfPartAxiom xs.[List.length xs - 1] }
  
  /// Converts an atomic action to a Prim.
  let rec modelPrimOnAtomic pmod atom =
  
negative.code: /// Converts a pair of AST views into a ConditionPair.
  /// The pair is enclosed in a Chessie result.
  let makeConditionPair ctx preAst postAst =
      lift2 (fun pre post -> { Pre = pre
                               Post = post } )
            (modelView ctx preAst)
            (modelView ctx postAst)
  
  //
  // Axioms
  