src/Modal/ROOT.ML
author paulson
Mon, 23 Sep 1996 18:18:18 +0200
changeset 2010 0a22b9d63a18
parent 1461 6bcb44e4d6e5
permissions -rw-r--r--
Simplification of definition of synth
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1361
diff changeset
     1
(*  Title:      91/Modal/ROOT
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1361
diff changeset
     3
    Author:     Martin Coen
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
    Copyright   1991  University of Cambridge
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     7
val banner = "Modal Logic (over LK)";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
writeln banner;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     9
121
d392174734e9 changed use_thy's parameter to exact theory name
clasohm
parents: 72
diff changeset
    10
use_thy "Modal0";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    11
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
structure Modal0_rls = 
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
struct
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    15
val rewrite_rls = [Modal0.strimp_def,Modal0.streqv_def];
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    16
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
local
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
  val iffR = prove_goal thy 
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
      "[| $H,P |- $E,Q,$F;  $H,Q |- $E,P,$F |] ==> $H |- $E, P <-> Q, $F"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
   (fn prems=>
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1361
diff changeset
    21
    [ (rewtac iff_def),
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
      (REPEAT (resolve_tac (prems@[conjR,impR]) 1)) ]);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
  val iffL = prove_goal thy 
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    25
     "[| $H,$G |- $E,P,Q;  $H,Q,P,$G |- $E |] ==> $H, P <-> Q, $G |- $E"
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
   (fn prems=>
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1361
diff changeset
    27
    [ rewtac iff_def,
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
      (REPEAT (resolve_tac (prems@[conjL,impL,basic]) 1)) ])
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
in
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
val safe_rls   = [basic,conjL,conjR,disjL,disjR,impL,impR,notL,notR,iffL,iffR];
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
val unsafe_rls = [allR,exL];
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
val bound_rls  = [allL,exR];
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
use "prover.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
use_thy"T";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    41
local open Modal0_rls T
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
in structure MP_Rule : MODAL_PROVER_RULE =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    43
   struct
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
    val rewrite_rls = rewrite_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
    val safe_rls    = safe_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
    val unsafe_rls  = unsafe_rls @ [boxR,diaL]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
    val bound_rls   = bound_rls @ [boxL,diaR]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48
    val aside_rls   = [lstar0,lstar1,lstar2,rstar0,rstar1,rstar2]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    49
   end
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    50
end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    51
structure T_Prover = Modal_ProverFun(MP_Rule);  
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    52
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    53
use_thy"S4";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    54
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    55
local open Modal0_rls S4
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    56
in structure MP_Rule : MODAL_PROVER_RULE =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    57
   struct
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    58
    val rewrite_rls = rewrite_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    59
    val safe_rls    = safe_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    60
    val unsafe_rls  = unsafe_rls @ [boxR,diaL]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    61
    val bound_rls   = bound_rls @ [boxL,diaR]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    62
    val aside_rls   = [lstar0,lstar1,lstar2,rstar0,rstar1,rstar2]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    63
   end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    64
end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    65
structure S4_Prover = Modal_ProverFun(MP_Rule);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    66
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    67
use_thy"S43";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    68
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    69
local open Modal0_rls S43
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    70
in structure MP_Rule : MODAL_PROVER_RULE =
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    71
   struct
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    72
    val rewrite_rls = rewrite_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    73
    val safe_rls    = safe_rls
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    74
    val unsafe_rls  = unsafe_rls @ [pi1,pi2]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    75
    val bound_rls   = bound_rls @ [boxL,diaR]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    76
    val aside_rls   = [lstar0,lstar1,lstar2,rstar0,rstar1,rstar2,S43pi0,S43pi1,S43pi2]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    77
   end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    78
end;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    79
structure S43_Prover = Modal_ProverFun(MP_Rule);  
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    80
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1361
diff changeset
    81
val Modal_build_completed = (); (*indicate successful build*)
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    82
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    83
(*printing functions are inherited from LK*)