src/HOL/NSA/HyperDef.thy
changeset 31001 7e6ffd8f51a9
parent 30968 10fef94f40fc
child 31017 2c227493ea56
equal deleted inserted replaced
31000:c2524d123528 31001:7e6ffd8f51a9
   424 done
   424 done
   425 *)
   425 *)
   426 
   426 
   427 subsection{*Powers with Hypernatural Exponents*}
   427 subsection{*Powers with Hypernatural Exponents*}
   428 
   428 
   429 definition pow :: "['a::recpower star, nat star] \<Rightarrow> 'a star" (infixr "pow" 80) where
   429 definition pow :: "['a::power star, nat star] \<Rightarrow> 'a star" (infixr "pow" 80) where
   430   hyperpow_def [transfer_unfold, code del]: "R pow N = ( *f2* op ^) R N"
   430   hyperpow_def [transfer_unfold, code del]: "R pow N = ( *f2* op ^) R N"
   431   (* hypernatural powers of hyperreals *)
   431   (* hypernatural powers of hyperreals *)
   432 
   432 
   433 lemma Standard_hyperpow [simp]:
   433 lemma Standard_hyperpow [simp]:
   434   "\<lbrakk>r \<in> Standard; n \<in> Standard\<rbrakk> \<Longrightarrow> r pow n \<in> Standard"
   434   "\<lbrakk>r \<in> Standard; n \<in> Standard\<rbrakk> \<Longrightarrow> r pow n \<in> Standard"
   457 lemma hyperpow_add:
   457 lemma hyperpow_add:
   458   "\<And>r n m. (r::'a::recpower star) pow (n + m) = (r pow n) * (r pow m)"
   458   "\<And>r n m. (r::'a::recpower star) pow (n + m) = (r pow n) * (r pow m)"
   459 by transfer (rule power_add)
   459 by transfer (rule power_add)
   460 
   460 
   461 lemma hyperpow_one [simp]:
   461 lemma hyperpow_one [simp]:
   462   "\<And>r. (r::'a::recpower star) pow (1::hypnat) = r"
   462   "\<And>r. (r::'a::monoid_mult star) pow (1::hypnat) = r"
   463 by transfer (rule power_one_right)
   463 by transfer (rule power_one_right)
   464 
   464 
   465 lemma hyperpow_two:
   465 lemma hyperpow_two:
   466   "\<And>r. (r::'a::recpower star) pow ((1::hypnat) + (1::hypnat)) = r * r"
   466   "\<And>r. (r::'a::recpower star) pow ((1::hypnat) + (1::hypnat)) = r * r"
   467 by transfer (simp add: power_Suc)
   467 by transfer (simp add: power_Suc)