theory Practical
imports Main
begin
section
(* 1 mark *)
lemma disjunction_idempotence:
A
apply(rule iffI)
apply(erule disjE)
apply assumption+
apply(rule disjI1)
apply assumption
done
(* 1 mark *)
lemma conjunction_idempotence:
A
apply(rule iffI)
apply(erule conjE)
apply assumption
apply(rule conjI)
apply assumption+
done
(* 1 mark *)
lemma disjunction_to_conditional:
(
apply(rule impI)+
apply(erule disjE)
apply(erule notE)
apply assumption+
done
(* 1 mark *)
lemma
(
apply(rule impI)
apply(rule conjI)
apply(erule exE)
apply(erule conjE)
apply (ruleexI)
apply assumption
apply(erule exE)
apply(erule conjE)
apply(rule exI)
apply assumption
done
(* 1 mark *)
lemma
(
apply(rule impI)+
apply(erule disjE)
apply(erule notE)
apply assumption+
done
(* 2 marks *)
lemma
(
apply(rule impI)
apply(rule notI)
apply(erule exE)
apply(erule_tac allE)
apply(erule notE)
apply assumption
done
(* 3 marks *)
text
lemma excluded_middle:
P
apply (rule ccontr)
apply (rule_tac P = P innotE)
apply(rule notI)
apply(erule notE)
apply(rule disjI1)
apply assumption
apply (rule ccontr)
apply(erule notE)
apply(rule disjI2)
apply assumption
done
(* 3 marks *)
text
lemma notnotD:
apply(rule disjE)
apply(rule excluded_middle)
apply assumption
apply(erule notE)
apply assumption
done
(* 3 marks *)
text
lemma classical:
(
apply(drule impI)
apply(rule notnotD)
apply(rule notI)
apply(erule impE)
apply assumption
apply(erule notE)
apply assumption
done
(* 3 marks *)
text
lemma ccontr:
(
apply(drule notI)
apply(rule classical)
apply(erule notE)
apply assumption
done
(* 3 marks *)
lemma
(
apply(rule iffI)
apply(rule ccontr)
apply(erule notE)
apply(rule allI)
apply(rule classical)
apply(erule notE)
apply(rule exI)
apply(rule conjI)
apply(rule notI)
apply(erule notE)
apply(rule disjI1)
apply assumption
apply(rule notI)
apply(erule notE)
apply(rule disjI2)
apply assumption
apply(rule notI)
apply(rule ccontr)
apply(erule exE)
apply(erule allE)
apply(erule notE)
apply(erule disjE)
apply(erule conjE)
apply(erule notE)
apply assumption
apply(erule conjE)
apply(erule notE)+
apply assumption
done
(* 3 marks *)
lemma
(
apply(rule iffI)
apply(rule notI)
apply(erule exE)
apply(erule conjE)
apply(erule notE)
apply(rule exI)
apply(erule allE)
apply(erule disjE)
apply(erule notE)
apply assumption+
apply(rule classical)
apply(erule notE)
apply(rule conjI)
apply(rule allI)
apply(rule notI)
apply(erule notE)
apply(rule exI)
apply(rule disjI1)
apply assumption
apply(rule notI)
apply(erule notE)
apply(erule exE)
apply(rule exI)
apply(rule disjI2)
apply assumption
done
section
locale partof =
fixes partof :: region
begin
(* 1 mark *)
definition properpartof :: region
x
(* 1 mark *)
definition overlaps :: region
x
definition disjoint :: region
x
(* 1 mark *)
definition partialoverlap :: region
x ~
(* 1 mark *)
definition sumregions :: region set
end
(* 1+1+1=3 marks *)
locale mereology = partof +
assumes A1:
and A2:
and A2:
begin
section
(* 2 marks *)
theorem overlaps_sym:
(x
apply (unfold overlaps_def)
oops
(* 1 mark *)
theorem in_sum_set_partof:
undefined
oops
(* 3 marks *)
theorem overlaps_refl:
undefined
oops
(* 1 mark *)
theorem all_has_partof:
undefined
oops
(* 2 marks *)
theorem partof_overlaps:
assumes undefined
shows undefined
oops
(* 1 mark *)
theorem sum_parts_eq:
undefined
oops
(* 2 marks *)
theorem sum_relation_is_same:
assumes
and
and
shows
oops
(* 1 mark *)
theorem overlap_has_partof_overlap:
assumes undefined
shows undefined
oops
(* 1 marks *)
theorem sum_parts_of_one_eq:
assumes undefined
shows undefined
oops
(* 5 marks *)
theorem both_partof_eq:
assumes undefined
shows undefined
oops
(* 4 marks *)
theorem sum_all_with_parts_overlapping:
assumes undefined
shows undefined
oops
(* 2 marks *)
theorem sum_one_is_self:
undefined
oops
(* 2 marks *)
theorem sum_all_with_parts_overlapping_self:
undefined
oops
(* 4 marks *)
theorem proper_have_nonoverlapping_proper:
assumes undefined
shows undefined
oops
(* 1 mark *)
sublocale parthood_partial_order: order (
proof
show
sorry
next
show
sorry
next
show
sorry
next
show
sorry
qed
end
section
locale sphere =
fixes sphere :: a
begin
abbreviation AllSpheres :: (a
abbreviation ExSpheres :: (a
end
locale mereology_sphere = mereology partof + sphere sphere
for partof :: region
and sphere :: region
begin
definition exttan :: region
exttan a b
definition inttan :: region
inttan a b
definition extdiam :: region
extdiam a b c
definition intdiam :: region
intdiam a b c
abbreviation properconcentric :: region
properconcentric a b
definition concentric :: region
a
definition onboundary :: region
onboundary s r
definition equidistant3 :: region
equidistant3 x y z
definition betw :: region
[x y z]
definition mid :: region
mid x y z
definition equidistant4 :: region
x y
definition oninterior :: region
oninterior s r
definition nearer :: region
nearer w x y z
end
locale partial_region_geometry = mereology_sphere partof sphere
for partof :: region
and sphere :: region
assumes A4:
and A5:
and A6:
and A7: sphere x
and A8: x
and A9:
begin
(* 2 marks *)
thm equiv_def
theorem conc_equiv:
equiv undefined undefined
oops
(* 6 marks *)
theorem region_is_spherical_sum:
undefined
oops
(* 1 mark *)
theorem region_spherical_interior:
undefined
oops
(* 2 marks *)
theorem equal_interiors_equal_regions:
assumes undefined
shows undefined
oops
(* 2 marks *)
theorem proper_have_nonoverlapping_proper_sphere:
assumes undefined
shows undefined
oops
(* 4 marks *)
theorem not_sphere_spherical_parts_gt1:
assumes undefined
and undefined
shows undefined
oops
end
section
context mereology_sphere
begin
(* 3 marks *)
lemma
assumes T4:
and A9:
shows False
oops
(* 3 marks *)
definition equidistant3 :: region
equidistant3 x y z
no_notation equidistant4 (_ _
definition equidistant4 :: region
x y
end
datatype two_reg = Left | Right | Both
(* 2 marks *)
definition tworeg_partof :: two_reg
x
(* 12 marks *)
interpretation mereology (
oops
end
Reviews
There are no reviews yet.