Quot/Examples/LFex.thy
changeset 604 0cf166548856
parent 600 5d932e7a856c
child 610 2bee5ca44ef5
equal deleted inserted replaced
603:7f35355df72e 604:0cf166548856
   177 
   177 
   178 quotient_def 
   178 quotient_def 
   179   perm_trm :: "'x prm \<Rightarrow> TRM \<Rightarrow> TRM"
   179   perm_trm :: "'x prm \<Rightarrow> TRM \<Rightarrow> TRM"
   180 where
   180 where
   181   "perm_trm \<equiv> (perm::'x prm \<Rightarrow> trm \<Rightarrow> trm)"
   181   "perm_trm \<equiv> (perm::'x prm \<Rightarrow> trm \<Rightarrow> trm)"
       
   182 
       
   183 end
   182 
   184 
   183 (* TODO/FIXME: Think whether these RSP theorems are true. *)
   185 (* TODO/FIXME: Think whether these RSP theorems are true. *)
   184 lemma kpi_rsp[quotient_rsp]: 
   186 lemma kpi_rsp[quotient_rsp]: 
   185   "(aty ===> op = ===> akind ===> akind) KPi KPi" sorry
   187   "(aty ===> op = ===> akind ===> akind) KPi KPi" sorry
   186 lemma tconst_rsp[quotient_rsp]: 
   188 lemma tconst_rsp[quotient_rsp]: 
   297   \<And>ty name trm. \<lbrakk>Q ty; R trm\<rbrakk> \<Longrightarrow> R (LAM ty name trm)\<rbrakk>
   299   \<And>ty name trm. \<lbrakk>Q ty; R trm\<rbrakk> \<Longrightarrow> R (LAM ty name trm)\<rbrakk>
   298   \<Longrightarrow> P mkind \<and> Q mty \<and> R mtrm"
   300   \<Longrightarrow> P mkind \<and> Q mty \<and> R mtrm"
   299 apply(tactic {* lift_tac @{context} @{thm kind_ty_trm.induct} 1 *})
   301 apply(tactic {* lift_tac @{context} @{thm kind_ty_trm.induct} 1 *})
   300 done
   302 done
   301 
   303 
   302 print_quotients
       
   303 
       
   304 end
   304 end
   305 
   305 
   306 
   306 
   307 
   307 
       
   308