118 lines
3.8 KiB
Plaintext
118 lines
3.8 KiB
Plaintext
theory BAC2017
|
||
imports "Isabelle_DOF.mathex_onto"
|
||
Deriv
|
||
Transcendental
|
||
begin
|
||
|
||
open_monitor*[exam::MathExam]
|
||
|
||
(* currently rethinking on "deep ontologies" necessary ... Achim
|
||
text*[idir::Author,affiliation="''LRI, CentraleSupelec''",
|
||
email="''idir.aitsadoune@centralesupelec.fr''"]
|
||
{*Idir AIT SADOUNE*}
|
||
|
||
text*[keller::Author,affiliation="''LRI, Univ. Paris-Sud''",
|
||
email="''Chantal.Keller@lri.fr''"]
|
||
{*Chantal KELLER*}
|
||
|
||
text{* This example is an excerpt from the french baccaleareat 2017.
|
||
The textual explanations were kept in french.
|
||
*}
|
||
*)
|
||
|
||
text*[header::Header,examSubject="[analysis,geometry]", date="''21-06-2017''",
|
||
timeAllowed="240::int"]{* BACCALAUREAT GENERAL MATHEMATIQUES *}
|
||
text{*
|
||
\begin{itemize}
|
||
\item Les calculatrices électroniques de poche sont autorisées, conformément à la réglementation
|
||
en vigueur.
|
||
\item Le sujet est composé de 4 exercices indépendants.
|
||
\item Le candidat doit traiter tous les exercices.
|
||
\item Le candidat est invité à faire figurer sur la copie toute trace de recherche, même incomplète
|
||
ou non fructueuse, qu’il aura développée.
|
||
\item Il est rappelé que la qualité de la rédaction, la clarté et la précision des raisonnements
|
||
entreront pour une part importante dans l’appréciation des copies.
|
||
\end{itemize}
|
||
*}
|
||
|
||
|
||
text*[exo1 :: Exercise,
|
||
concerns= "{setter,student,checker,externalExaminer}"]
|
||
{* On considère la fonction h définie sur l’intervalle [0..+\<infinity>] par :
|
||
@{term "h(x) = x * exponent (-x)"}
|
||
*}
|
||
|
||
definition h :: "real \<Rightarrow> real"
|
||
where "h x \<equiv> x * exp (- x)"
|
||
|
||
|
||
text*[q1::Task, concerns= "{setter,student}",
|
||
level="oneStar", mark="1::int", type="formal"]
|
||
{* Déterminer la limite de la fonction @{term h} en +\<infinity>. *}
|
||
|
||
text*[a1::Answer_Formal_Step] {* Fill in term and justification*}
|
||
|
||
lemma q1 : "(h \<longlongrightarrow> (0::real)) at_top" sorry
|
||
|
||
text*[v1::Validation, proofs="[@{thm ''HOL.refl''}::thm]"] {* See lemma @{thm q1}. *}
|
||
|
||
|
||
text*[q2::Task, concerns= "{setter,checker,student}",
|
||
level="oneStar", mark="1::int", type="formal"]
|
||
{* Étudier les variations de la fonction @{term h} sur l'intervalle [0..+\<infinity>] et
|
||
dresser son tableau de variation *}
|
||
|
||
text*[a2::Answer_Formal_Step]
|
||
{* Fill in term and justification*}
|
||
|
||
definition h' :: "real \<Rightarrow> real"
|
||
where "h' x \<equiv> (1 - x) * exp (- x)"
|
||
|
||
lemma q2_a : "DERIV h x :> h' x"
|
||
proof -
|
||
have * : "DERIV (exp \<circ> uminus) x :> - (exp (-x))"
|
||
sorry (* by (simp add: has_derivative_compose) *)
|
||
have ** : "DERIV id x :> 1"
|
||
by (metis DERIV_ident eq_id_iff)
|
||
have *** : "DERIV h x :> x * (- (exp (- x))) + 1 * (exp (- x))"
|
||
sorry (* by (simp add: * ** has_derivative_mult comp_def) *)
|
||
show ?thesis
|
||
sorry (* by (metis "***" left_diff_distrib mult_minus_right uminus_add_conv_diff) *)
|
||
qed
|
||
|
||
lemma q2_b : "0 \<le> x \<and> x \<le> y \<and> y \<le> 1 \<Longrightarrow> h x \<le> h y"
|
||
sorry
|
||
|
||
lemma q2_c : "1 \<le> x \<and> x \<le> y \<Longrightarrow> h x \<ge> h y"
|
||
sorry
|
||
|
||
text*[v2::Validation, proofs="[@{thm ''BAC2017.q2_b''}, @{thm ''BAC2017.q2_c''}]"]
|
||
{* See lemmas @{thm q2_b} and @{thm q2_c}. *}
|
||
|
||
|
||
text*[q3a::Task, concerns= "{setter,checker,student}",
|
||
level="oneStar", mark="1::int", type="formal"]
|
||
{* Vérifier que pour tout nombre réel x appartenant à l'intervalle [0..+\<infinity>], on a :
|
||
@{term "h x = (exp (- x)) - (h' x)"}. *}
|
||
|
||
text*[a3a::Answer_Formal_Step]
|
||
{* Fill in term and justification*}
|
||
|
||
lemma q3a : "h x = (exp (- x)) - (h' x)"
|
||
by (simp add : h_def h'_def left_diff_distrib)
|
||
|
||
subsubsection*[v3a::Validation, proofs="[@{thm ''BAC2017.q3a''}::thm]"]
|
||
{* See lemma @{thm q3a}. *}
|
||
|
||
|
||
subsection*[sol1 :: Solution,
|
||
content="[exo1::Exercise]",
|
||
valids = "[v1::Validation,v2,v3a]"]
|
||
{* See validations. *}
|
||
|
||
|
||
|
||
close_monitor*[exam]
|
||
|
||
end
|