theory Peter imports Main begin types t = "string" types indexed_orders = "nat \ (t*t) set" constdefs mytest :: "indexed_orders \ nat \ t \ t \ bool" "mytest tos n t1 t2 == (t1,t2) \ tos n" abbreviation in_rel :: "'a \ ('a * 'b) set \ 'b \ bool" ("(_/ \\<^bsub>_\<^esub> _)" [51, 0, 51] 50) where "x \\<^bsub>R\<^esub> y \ (x, y) \ R" text {* The definition of @{text mytest} is @{thm [display] mytest_def [no_vars]} The introduction rule @{text rtrancl_into_rtrancl} for the transitive closure is @{thm [display] rtrancl_into_rtrancl [no_vars]} *} end