.theorem {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: theorem;
}
.theorem:before {
  content: "Theorem " counter(theorem) ".";
  font-weight: bold;
  font-style: normal;
}
.theorem p:first-child {
  display: inline;
}


.lemma {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: lemma;
}
.lemma:before {
  content: "Lemma " counter(lemma) ".";
  font-weight: bold;
  font-style: normal;
}
.lemma p:first-child {
  display: inline;
}

.corollary {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: corollary;
}
.corollary:before {
  content: "Corollary " counter(corollary) ".";
  font-weight: bold;
  font-style: normal;
}
.corollary p:first-child {
  display: inline;
}

.proposition {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: proposition;
}
.proposition:before {
  content: "Proposition " counter(proposition) ".";
  font-weight: bold;
  font-style: normal;
}
.proposition p:first-child {
  display: inline;
}

.property {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: property;
}
.property:before {
  content: "Property " counter(property) ".";
  font-weight: bold;
  font-style: normal;
}
.property p:first-child {
  display: inline;
}

.assumption {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: assumption;
}
.assumption:before {
  content: "Assumption " counter(assumption) ".";
  font-weight: bold;
  font-style: normal;
}
.assumption p:first-child {
  display: inline;
}

.definition {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: definition;
}
.definition:before {
  content: "Definition " counter(definition) ".";
  font-weight: bold;
  font-style: normal;
}
.definition p:first-child {
  display: inline;
}

.remarque {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: remarque;
}
.remarque:before {
  content: "Remark " counter(remarque) ".";
  font-weight: bold;
  font-style: normal;
}
.remarque p:first-child {
  display: inline;
}

.exemple {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: italic;
  counter-increment: exemple;
}
.exemple:before {
  content: "Example " counter(exemple) ".";
  font-weight: bold;
  font-style: normal;
}
.exemple p:first-child {
  display: inline;
}

.exercice {
  display: block;
  width:90%;
  margin:30px auto;
  font-style: normal;
  counter-increment: exercice;
}
.exercice:before {
  content: "Exercise " counter(exercice) ".";
  font-weight: bold;
  font-style: normal;
}
.exercice p:first-child {
  display: inline;
}

.proof {
  display: flow-root;   /* contains the floated end-of-proof square */
  margin: 30px 0;
  font-style: normal;
}
.proof:before {
  content: "Proof.";
  font-style: italic;
}
.proof > :last-child:after {
  content: "\A0\A0\25FC";
  float: right;
}
.proof p:first-child {
  display: inline;
}
