src/ZF/Ordinal.ML
changeset 5465 cc95f12ab64f
parent 5321 f8848433d240
child 6153 bff90585cce5
equal deleted inserted replaced
5464:47d0d906b39a 5465:cc95f12ab64f
   226 
   226 
   227 Goal "[| i<j;  j<k |] ==> i<k";
   227 Goal "[| i<j;  j<k |] ==> i<k";
   228 by (blast_tac (claset() addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1);
   228 by (blast_tac (claset() addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1);
   229 qed "lt_trans";
   229 qed "lt_trans";
   230 
   230 
   231 Goalw [lt_def] "[| i<j;  j<i |] ==> P";
   231 Goalw [lt_def] "i<j ==> ~ (j<i)";
   232 by (REPEAT (eresolve_tac [asm_rl, conjE, mem_asym] 1));
   232 by (blast_tac (claset() addEs [mem_asym]) 1);
   233 qed "lt_asym";
   233 qed "lt_not_sym";
       
   234 
       
   235 (* [| i<j;  ~P ==> j<i |] ==> P *)
       
   236 bind_thm ("lt_asym", lt_not_sym RS swap);
   234 
   237 
   235 qed_goal "lt_irrefl" Ordinal.thy "i<i ==> P"
   238 qed_goal "lt_irrefl" Ordinal.thy "i<i ==> P"
   236  (fn [major]=> [ (rtac (major RS (major RS lt_asym)) 1) ]);
   239  (fn [major]=> [ (rtac (major RS (major RS lt_asym)) 1) ]);
   237 
   240 
   238 qed_goal "lt_not_refl" Ordinal.thy "~ i<i"
   241 qed_goal "lt_not_refl" Ordinal.thy "~ i<i"
   281 
   284 
   282 AddIs [le_refl];
   285 AddIs [le_refl];
   283 AddSDs [le0D];
   286 AddSDs [le0D];
   284 Addsimps [le0_iff];
   287 Addsimps [le0_iff];
   285 
   288 
   286 (*blast_tac will NOT see lt_asym*)
       
   287 val le_cs = claset() addSIs [leCI] addSEs [leE] addEs [lt_asym];
   289 val le_cs = claset() addSIs [leCI] addSEs [leE] addEs [lt_asym];
   288 
   290 
   289 
   291 
   290 (*** Natural Deduction rules for Memrel ***)
   292 (*** Natural Deduction rules for Memrel ***)
   291 
   293