+++ /dev/null
-(* Copyright (C) 2004, HELM Team.
- *
- * This file is part of HELM, an Hypertextual, Electronic
- * Library of Mathematics, developed at the Computer Science
- * Department, University of Bologna, Italy.
- *
- * HELM is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * HELM is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HELM; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * For details, see the HELM World-Wide-Web page,
- * http://helm.cs.unibo.it/
- *)
-
-open Printf
-
-open TacticAst
-
-let pp_term term = CicAstPp.pp_term term
-
-let pp_idents idents = "[" ^ String.concat "; " idents ^ "]"
-
-let pp_reduction_kind = function
- | `Reduce -> "reduce"
- | `Simpl -> "simpl"
- | `Whd -> "whd"
-
-let rec pp_tactic = function
- | LocatedTactic (loc, tac) -> pp_tactic tac
- | Absurd -> "absurd"
- | Apply term -> "apply " ^ pp_term term
- | Assumption -> "assumption"
- | Change (t1, t2, where) ->
- sprintf "change %s with %s%s" (pp_term t1) (pp_term t2)
- (match where with None -> "" | Some ident -> "in " ^ ident)
- | Change_pattern (_, _, _) -> assert false (* TODO *)
- | Contradiction -> "contradiction"
- | Cut term -> "cut " ^ pp_term term
- | Decompose (ident, principles) ->
- sprintf "decompose %s %s" (pp_idents principles) ident
- | Discriminate ident -> "discriminate " ^ ident
- | Elim (term, using) ->
- sprintf "elim " ^ pp_term term ^
- (match using with None -> "" | Some term -> " using " ^ pp_term term)
- | ElimType term -> "elim type " ^ pp_term term
- | Exact term -> "exact " ^ pp_term term
- | Exists -> "exists"
- | Fold (kind, term) ->
- sprintf "fold %s %s" (pp_reduction_kind kind) (pp_term term)
- | Fourier -> "fourier"
- | Injection ident -> "injection " ^ ident
- | Intros (num, idents) ->
- sprintf "intros%s%s"
- (match num with None -> "" | Some num -> " " ^ string_of_int num)
- (match idents with [] -> "" | idents -> " " ^ pp_idents idents)
- | Left -> "left"
- | LetIn (term, ident) -> sprintf "let %s in %s" (pp_term term) ident
- | Reduce (_, _, _) -> assert false (* TODO *)
- | Reflexivity -> "reflexivity"
- | Replace (t1, t2) -> sprintf "replace %s with %s" (pp_term t1) (pp_term t2)
- | Replace_pattern (_, _) -> assert false (* TODO *)
- | Rewrite (_, _, _) -> assert false (* TODO *)
- | Right -> "right"
- | Ring -> "ring"
- | Split -> "split"
- | Symmetry -> "symmetry"
- | Transitivity term -> "transitivity " ^ pp_term term
-
-let pp_flavour = function
- | `Definition -> "Definition"
- | `Fact -> "Fact"
- | `Goal -> "Goal"
- | `Lemma -> "Lemma"
- | `Remark -> "Remark"
- | `Theorem -> "Theorem"
-
-let pp_command = function
- | Abort -> "Abort"
- | Check term -> sprintf "Check %s" (CicAstPp.pp_term term)
- | Proof -> "Proof"
- | Qed name ->
- (match name with None -> "Qed" | Some name -> sprintf "Save %s" name)
- | Quit -> "Quit"
- | Theorem (flavour, name, typ, body) ->
- sprintf "%s %s: %s %s"
- (pp_flavour flavour)
- (match name with None -> "" | Some name -> name)
- (CicAstPp.pp_term typ)
- (match body with
- | None -> ""
- | Some body -> "\\def " ^ CicAstPp.pp_term body)
-
-let rec pp_tactical = function
- | LocatedTactical (loc, tac) -> pp_tactical tac
-
- | Tactic tac -> pp_tactic tac
- | Command cmd -> pp_command cmd
-
- | Fail -> "fail"
- | Do (count, tac) -> sprintf "do %d %s" count (pp_tactical tac)
- | IdTac -> "id"
- | Repeat tac -> "repeat " ^ pp_tactical tac
- | Seq tacs -> pp_tacticals tacs
- | Then (tac, tacs) -> sprintf "%s [%s]" (pp_tactical tac) (pp_tacticals tacs)
- | Tries tacs -> sprintf "tries [%s]" (pp_tacticals tacs)
- | Try tac -> "try " ^ pp_tactical tac
-
-and pp_tacticals tacs = String.concat "; " (List.map pp_tactical tacs)
-
-let pp_tactical tac = pp_tactical tac ^ "."
-