Kleinigkeiten.

This commit is contained in:
Burkhart Wolff 2018-06-29 09:03:44 +02:00
parent c0c92ac50c
commit 35a0a27c1d
8 changed files with 110 additions and 87 deletions

View File

@ -49,16 +49,23 @@
\immediate\write\@auxout{\noexpand\addauthor{#1}}%
}
\newkeycommand\isaDofTextHeader[label=,type=,examSubject=,date=,timeAllowed=][1]{%
\immediate\write\@auxout{\noexpand\title{\commandkey{#1}}}%
}
\newkeycommand\isaDofSubsectionHeader[label=,type=,examTitle=,examSubject=,date,timeAllowed][1]{%
\immediate\write\@auxout{\noexpand\title{\commandkey{examTitle}}}%
\newkeycommand\isaDofSectionHeader[label=,type=,examSubject=,date=,timeAllowed=][1]{%
\immediate\write\@auxout{\noexpand\title{\commandkey{#1}}}%
}
\newkeycommand\isaDofSubsectionHeader[label=,type=,examSubject=,date=,timeAllowed=][1]{%
\immediate\write\@auxout{\noexpand\title{\commandkey{#1}}}%
}
\newkeycommand\isaDofTextAnswerFormalStep[label=,type=,justification=,term=][1]{%
#1
}
\newkeycommand\isaDofTextAnswerYesNo[label=,type=,step_label=, yes_no=][1]{%
\newkeycommand\isaDofTextAnswerYesNo[label=,type=,step_label=,yes_no=][1]{%
#1
}

View File

@ -6,7 +6,7 @@ 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*}
@ -18,12 +18,11 @@ text*[keller::Author,affiliation="''LRI, Univ. Paris-Sud''",
text{* This example is an excerpt from the french baccaleareat 2017.
The textual explanations were kept in french.
*}
text*[header::Header,examSubject= "[analysis,geometry]",
examTitle="''BACCALAUREAT GENERAL MATHEMATIQUES''",
date="''21-06-2017''",
timeAllowed="240::int"]
{*
*)
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.
@ -38,8 +37,7 @@ text*[header::Header,examSubject= "[analysis,geometry]",
text*[exo1 :: Exercise,
Exercise.concerns= "{setter,student,checker,external_examiner}",
Exercise.content="[q1::Task,q2,q3a]"]
Exercise.concerns= "{setter,student,checker,externalExaminer}"]
{* On considère la fonction h définie sur lintervalle [0..+\<infinity>] par :
@{term "h(x) = x * exponent (-x)"}
*}
@ -52,21 +50,17 @@ text*[q1::Task, 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*}
text*[a1::Answer_Formal_Step] {* Fill in term and justification*}
lemma q1 : "(h \<longlongrightarrow> (0::real)) at_top"
sorry
lemma q1 : "(h \<longlongrightarrow> (0::real)) at_top" sorry
text*[v1::Validation,
proofs="[q1::thm]"]
{* See lemma q1 *}
text*[v1::Validation, proofs="[@{thm ''q1''}::thm]"] {* See lemma @{thm q1}. *}
text*[q2::Task, Task.concerns= "{examiner,validator,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*[q2::Task, 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*}
@ -92,15 +86,14 @@ lemma q2_b : "0 \<le> x \<and> x \<le> y \<and> y \<le> 1 \<Longrightarrow> h x
lemma q2_c : "1 \<le> x \<and> x \<le> y \<Longrightarrow> h x \<ge> h y"
sorry
text*[v2::Validation,
proofs="[q2_b::thm, q2_c]"]
{* See lemmas q2_b and q2_c *}
text*[v2::Validation, proofs="[@{thm ''q2_b''}, @{thm ''q2_c''}]"]
{* See lemmas @{thm q2_b} and @{thm q2_c}. *}
text*[q3a::Task, Task.concerns= "{examiner,validator,student}",
text*[q3a::Task, 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)} *}
@{term "h x = (exp (- x)) - (h' x)"}. *}
text*[a3a::Answer_Formal_Step]
{* Fill in term and justification*}
@ -108,17 +101,14 @@ text*[a3a::Answer_Formal_Step]
lemma q3a : "h x = (exp (- x)) - (h' x)"
by (simp add : h_def h'_def left_diff_distrib)
subsubsection*[v3a::Validation,
proofs="[q3a::thm]"]
{* See lemma q3a *}
subsubsection*[v3a::Validation, proofs="[@{thm ''q3a''}::thm]"]
{* See lemma @{thm q3a}. *}
subsection*[sol1 :: Solution,
Solution.content="[exo1::Exercise]",
Solution.valids = "[v1::Validation,v2,v3a]"]
{*
See validations.
*}
{* See validations. *}

View File

@ -2,8 +2,12 @@ session "BAC2017" = "HOL" +
options [document = pdf, document_output = "output",quick_and_dirty=true]
theories [document = false]
"../../../ontologies/mathex_onto"
"Deriv"
"Transcendental"
theories
BAC2017
document_files
"root.tex"
"preamble.tex"
"ontologies.tex"
"build"

View File

@ -12,3 +12,9 @@
%% SPDX-License-Identifier: LPPL-1.0+ OR BSD-2-Clause
%% This is a placeholder for user-specific configuration and packages.
\newkeycommand\isaDofTextExercise[label=,type=,Exercise.content=,concerns=,][1]{%
\begin{Exercise}
#1
\end{Exercise}
}

View File

@ -1,56 +1,71 @@
\documentclass[11pt,a4paper]{article}
\usepackage{isabelle,isabellesym}
%% Copyright (C) 2018 The University of Sheffield
%% 2018 The University of Paris-Sud
%%
%% License:
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN
%% archives in directory macros/latex/base/lppl.txt; either
%% version 1 of the License, or any later version.
%% OR
%% The 2-clause BSD-style license.
%%
%% SPDX-License-Identifier: LPPL-1
% further packages required for unusual symbols (see also
% isabellesym.sty), use only when needed
%% Warning: Do Not Edit!
%% =====================
%% This is the root file for the Isabelle/DOF.
%% All customization and/or additional packages should be added to the file
%% preamble.tex.
%\usepackage{amssymb}
%for \<leadsto>, \<box>, \<diamond>, \<sqsupset>, \<mho>, \<Join>,
%\<lhd>, \<lesssim>, \<greatersim>, \<lessapprox>, \<greaterapprox>,
%\<triangleq>, \<yen>, \<lozenge>
%\usepackage{eurosym}
%for \<euro>
%\usepackage[only,bigsqcap]{stmaryrd}
%for \<Sqinter>
%\usepackage{eufrak}
%for \<AA> ... \<ZZ>, \<aa> ... \<zz> (also included in amssymb)
%\usepackage{textcomp}
%for \<onequarter>, \<onehalf>, \<threequarters>, \<degree>, \<cent>,
%\<currency>
% this should be the last package used
\usepackage{pdfsetup}
% urls in roman style, theory text in math-similar italics
\RequirePackage{ifvtex}
\documentclass[fontsize=11pt,DIV12,paper=a4]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage[english]{babel}
\usepackage{isabelle}
\input{ontologies}
\usepackage{isabellesym}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[numbers, sort&compress, sectionbib]{natbib}
\usepackage{hyperref}
\setcounter{tocdepth}{3}
\hypersetup{%
bookmarksdepth=3
,pdfpagelabels
,pageanchor=true
,bookmarksnumbered
,plainpages=false
} % more detailed digital TOC (aka bookmarks)
\sloppy
\allowdisplaybreaks[4]
\urlstyle{rm}
\isabellestyle{it}
% for uniform font size
%\renewcommand{\isastyle}{\isastyleminor}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Overrides the (rightfully issued) warning by Koma Script that \rm
%%% etc. should not be used (they are deprecated since more than a
%%% decade)
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\title{BAC2017}
\title{.}
\author{By bu}
\begin{document}
\maketitle
\tableofcontents
% sane default for proof documents
\parindent 0pt\parskip 0.5ex
% generated text of all theories
\input{session}
% optional bibliography
%\bibliographystyle{abbrv}
%\bibliography{root}
\IfFileExists{root.bib}{%
\bibliographystyle{abbrvnat}
\bibliography{root}
}{}
\end{document}
%%% Local Variables:

View File

@ -6,13 +6,10 @@ begin
(*>*)
open_monitor*[exam::MathExam]
section*[idir::Author, affiliation="''CentraleSupelec''",
email="''idir.aitsadoune@centralesupelec.fr''"]
{*Idir AIT SADOUNE*}
subsection*[header::Header,examSubject= "[algebra]", examTitle="''Exam number 1''",
date="''02-05-2018''", timeAllowed="90::int"]
{*
section*[header::Header,examSubject= "[algebra]",
date="''02-05-2018''", timeAllowed="90::int"] {* Exam number 1 *}
text{*
\begin{itemize}
\item Use black ink or black ball-point pen.
\item Draw diagrams in pencil.
@ -20,6 +17,11 @@ subsection*[header::Header,examSubject= "[algebra]", examTitle="''Exam number 1
\end{itemize}
*}
subsection*[idir::Author, affiliation="''CentraleSupelec''",
email="''idir.aitsadoune@centralesupelec.fr''"]
{*Idir AIT SADOUNE*}
(* should be in DOF-core
* causes crash on the LaTeX side:

View File

@ -11,4 +11,4 @@ session "MathExam" = "HOL" +
"ontologies.tex"
"preamble.tex"
"build"
"document/figures/Polynomialdeg5.png"
"figures/Polynomialdeg5.png"

View File

@ -19,7 +19,7 @@ where the author of the exam is not expected to be physically present.
datatype ContentClass =
setter -- \<open>the 'author' of the exam\<close>
| checker -- \<open>the 'proof-reader' of the exam\<close>
| external_examiner -- \<open>an external 'proof-reader' of the exam\<close>
| externalExaminer -- \<open>an external 'proof-reader' of the exam\<close>
| student -- \<open>the victim ;-) ... \<close>
@ -40,7 +40,6 @@ datatype Grade =
A1 | A2 | A3
doc_class Header =
examTitle :: string
examSubject :: "(Subject) list"
date :: string
timeAllowed :: int -- minutes
@ -66,13 +65,13 @@ doc_class Task = Exam_item +
level :: Level
type :: Question_Type
subitems :: "(SubQuestion * (Answer_Formal_Step list + Answer_YesNo)list) list"
concerns :: "ContentClass set" <= "{setter,student,checker,external_examiner}"
concerns :: "ContentClass set" <= "{setter,student,checker,externalExaminer}"
mark :: int
doc_class Exercise = Exam_item +
content :: "(Task) list"
concerns :: "ContentClass set" <= "{setter,student,checker,external_examiner}"
concerns :: "ContentClass set" <= "{setter,student,checker,externalExaminer}"
text{* In many institutions, it makes sense to have a rigorous process of validation
@ -89,7 +88,7 @@ doc_class Validation =
doc_class Solution = Exam_item +
content :: "Exercise list"
valids :: "Validation list"
concerns :: "ContentClass set" <= "{setter,checker,external_examiner}"
concerns :: "ContentClass set" <= "{setter,checker,externalExaminer}"
doc_class MathExam=
content :: "(Header + Author + Exercise) list"