src/Pure/Interface/isamode.ML
author berghofe
Tue, 07 Nov 2000 17:52:12 +0100
changeset 10416 5b33e732e459
parent 6698 c450839439f0
child 12117 b84046fb6e02
permissions -rw-r--r--
- Moved rewriting functions to meta_simplifier.ML - dest_abs now also takes an optional variable name as an argument - beta_conversion takes additional flag as an argument. Fully reduces the term if set to true Some tuning: - tuned fix_shyps in instantiate, implies_intr, implies_elim, reflexive, transitive, beta_conversion, abstract_rule - combination: chktypes derives types of f and t from type of == instead of using fastype_of New primitives: - eta_conversion - incr_indexes: increment indexes in theorems - cterm_incr_indexes: increment indexes in cterms - cterm_match, cterm_first_order_match - rename_boundvars
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6698
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/Interface/isamode.ML
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     3
    Author:     Markus Wenzel, TU Muenchen
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     4
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     5
Configuration for David Aspinall's Isamode.
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     6
*)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     7
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     8
signature ISAMODE =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
     9
sig
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    10
  val setup: (theory -> theory) list
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    11
  val init: bool -> unit
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    12
end;
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    13
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    14
structure Isamode: ISAMODE =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    15
struct
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    16
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    17
(** compile-time theory setup **)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    18
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    19
(* token translations *)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    20
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    21
val isamodeN = "Isamode";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    22
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    23
local
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    24
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    25
val end_tag = "\^A0";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    26
val tclass_tag = "\^A1";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    27
val tfree_tag = "\^A2";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    28
val tvar_tag = "\^A3";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    29
val free_tag = "\^A4";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    30
val bound_tag = "\^A5";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    31
val var_tag = "\^A6";
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    32
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    33
fun tagit p x = (p ^ x ^ end_tag, real (size x));
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    34
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    35
in
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    36
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    37
val isamode_trans =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    38
 Syntax.tokentrans_mode isamodeN
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    39
  [("class", tagit tclass_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    40
   ("tfree", tagit tfree_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    41
   ("tvar", tagit tvar_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    42
   ("free", tagit free_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    43
   ("bound", tagit bound_tag),
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    44
   ("var", tagit var_tag)];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    45
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    46
end;
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    47
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    48
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    49
(* setup *)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    50
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    51
val setup = [Theory.add_tokentrfuns isamode_trans];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    52
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    53
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    54
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    55
(** run-time initialization **)
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    56
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    57
fun init isamode =
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    58
  if isamode then print_mode := [Symbol.isabelle_fontN, Symbol.symbolsN, isamodeN]
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    59
  else print_mode := [Symbol.isabelle_fontN, Symbol.symbolsN];
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    60
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    61
c450839439f0 Configuration for David Aspinall's Isamode.
wenzelm
parents:
diff changeset
    62
end;