src/CCL/Trancl.thy
author wenzelm
Wed, 21 Mar 2018 17:55:17 +0100
changeset 67912 a7731d581bbc
parent 62020 5d208fd2507d
child 74445 63a697f1fb8f
permissions -rw-r--r--
clarified result;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
     1
(*  Title:      CCL/Trancl.thy
1474
3f7d67927fe2 expanded tabs
clasohm
parents: 0
diff changeset
     2
    Author:     Martin Coen, Cambridge University Computer Laboratory
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     3
    Copyright   1993  University of Cambridge
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
60770
240563fbf41d isabelle update_cartouches;
wenzelm
parents: 58977
diff changeset
     6
section \<open>Transitive closure of a relation\<close>
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
     7
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
     8
theory Trancl
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
     9
imports CCL
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
    10
begin
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    11
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    12
definition trans :: "i set \<Rightarrow> o"  (*transitivity predicate*)
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    13
  where "trans(r) == (ALL x y z. <x,y>:r \<longrightarrow> <y,z>:r \<longrightarrow> <x,z>:r)"
42156
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    14
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    15
definition id :: "i set"  (*the identity relation*)
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    16
  where "id == {p. EX x. p = <x,x>}"
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    18
definition relcomp :: "[i set,i set] \<Rightarrow> i set"  (infixr "O" 60)  (*composition of relations*)
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    19
  where "r O s == {xz. EX x y z. xz = <x,z> \<and> <x,y>:s \<and> <y,z>:r}"
42156
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    20
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    21
definition rtrancl :: "i set \<Rightarrow> i set"  ("(_^*)" [100] 100)
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    22
  where "r^* == lfp(\<lambda>s. id Un (r O s))"
42156
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    23
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    24
definition trancl :: "i set \<Rightarrow> i set"  ("(_^+)" [100] 100)
42156
df219e736a5d modernized specifications -- less axioms;
wenzelm
parents: 32153
diff changeset
    25
  where "r^+ == r O rtrancl(r)"
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1474
diff changeset
    26
20140
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    27
62020
5d208fd2507d isabelle update_cartouches -c -t;
wenzelm
parents: 60770
diff changeset
    28
subsection \<open>Natural deduction for \<open>trans(r)\<close>\<close>
20140
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    29
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    30
lemma transI: "(\<And>x y z. \<lbrakk><x,y>:r; <y,z>:r\<rbrakk> \<Longrightarrow> <x,z>:r) \<Longrightarrow> trans(r)"
20140
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    31
  unfolding trans_def by blast
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    32
58977
9576b510f6a2 more symbols;
wenzelm
parents: 58889
diff changeset
    33
lemma transD: "\<lbrakk>trans(r); <a,b>:r; <b,c>:r\<rbrakk> \<Longrightarrow> <a,c>:r"
20140
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    34
  unfolding trans_def by blast
98acc6d0fab6 removed obsolete ML files;
wenzelm
parents: 17456
diff changeset
    35