thys/PDerivs.thy
changeset 311 8b8db9558ecf
parent 309 a7769a89c529
child 312 8b0b414e71b0
equal deleted inserted replaced
310:c090baa7059d 311:8b8db9558ecf
   338   also have "... \<le> awidth r + 1"
   338   also have "... \<le> awidth r + 1"
   339     by (rule card_pders_set_UNIV_le_awidth)
   339     by (rule card_pders_set_UNIV_le_awidth)
   340   finally show "card (pders_Set A r) \<le> awidth r + 1" by simp
   340   finally show "card (pders_Set A r) \<le> awidth r + 1" by simp
   341 qed
   341 qed
   342 
   342 
       
   343 (* tests *)
       
   344 
       
   345 lemma b: 
       
   346   assumes "rd \<in> pder c r"
       
   347   shows "size rd \<le> (Suc (size r)) * (Suc (size r))"
       
   348   using assms
       
   349   apply(induct r arbitrary: rd)
       
   350   apply(auto)[3]
       
   351   apply(case_tac "c = x")
       
   352       apply(auto)[2]
       
   353   prefer 2
       
   354     apply(auto)[1]
       
   355   oops
       
   356   
       
   357   
       
   358 
       
   359 lemma a: 
       
   360   assumes "rd \<in> pders s (SEQ r1 r2)"
       
   361   shows "size  rd \<le> Suc (size r1 + size r2)"
       
   362   using assms
       
   363   apply(induct s arbitrary: r1 r2 rd)
       
   364    apply(simp)
       
   365   apply(auto)
       
   366   apply(case_tac "nullable r1")
       
   367    apply(auto)
       
   368   oops
       
   369   
       
   370 
       
   371 lemma
       
   372   shows "\<forall>rd \<in> (pders_Set UNIV r). size rd \<le> size r"
       
   373   apply(induct r)
       
   374        apply(auto)[1]
       
   375        apply(simp add: pders_Set_def)
       
   376       apply(simp add: pders_Set_def)
       
   377      apply(simp add: pders_Set_def pders_CHAR)
       
   378   using pders_CHAR apply fastforce
       
   379     prefer 2
       
   380     apply(simp add: pders_Set_def)
       
   381     apply (meson Un_iff le_SucI trans_le_add1 trans_le_add2)
       
   382   apply(simp add: pders_Set_def)
       
   383    apply(auto)[1]
       
   384   apply(case_tac y)
       
   385   apply(simp)
       
   386    apply(simp)
       
   387    apply(auto)[1]
       
   388    apply(case_tac "nullable r1")
       
   389     apply(simp)
       
   390     apply(auto)[1]
       
   391      prefer 3
       
   392      apply(simp)
       
   393      apply(auto)[1]
       
   394      apply(subgoal_tac "size xa \<le> size r1")
       
   395       prefer 2
       
   396       apply (metis UN_I pders.simps(1) pders_snoc singletonI)
       
   397   oops
       
   398   
       
   399   
       
   400   
       
   401   
   343 
   402 
   344 end
   403 end