Freek, you're running a very interesting discussion with Mark, Felix,
Chris etc.  I'd like to know why Mark can't do his interface
improvements on HOL Light.  Responding to your points:

   Maybe you _would_ experience those steps very fleetingly, but you
   wouldn't focus at them in the way a proof assistant forces you to.

Yes, I've been forced to focus in my 2600+ lines of miz3 code
http://www.math.northwestern.edu/~richter/RichterHOL-LightMiz3HilbertAxiomGeometry.tar.gz
formalizing my Hilbert axiomatic geometry paper
http://www.math.northwestern.edu/~richter/hilbert.pdf Often I've found
that I hadn't done a good job on those those steps I experience very
fleetingly.  My latest example involves the supplement of angle, which
sounds really easy, right?  And a right angle is one whose supplement
is congruent to itself.  My Lemma 6.6 from my paper reads

   Supplements of congruent angles are congruent. An angle congruent to a
   right angle is a right angle. All right angles are congruent.

   Proof. Greenberg proves the first statement [7, Prop. 3.14]. This
   implies the second statement, by axiom C5. The third statement, due
   to Hilbert, is [7, Prop. 3.23].

How hard can that be to formalize?  It took me over 200 lines!  The
problem was that I wasn't thinking about an angle (a subset of the
plane, a union of two rays) but instead 3 points.  Possibly my experts
Hartshorne and Greenberg thought the same way.  Straightening that out
took work, and I include below all the thm & defs I use for
supplements and right angles, partly to shed light on

   And when you prove something you will need to decide on a name for
   your new lemma.  That's something that's particularly difficult.

Yes!  I have a 775 line long file thmFontHilbertAxiom.ml which
contains all my defs and thms, and I'd be lost without it.  I'm
constantly searching through it for something to cut & paste and then
make variable substitutions with Emacs query-replace.  I definitely
worried about the names of my thms & defs.

But I think the interface issues that Mark, Felix & Chris bring up are
also important.  The miz3 error messages don't confuse me at all any
more.  Maybe I'm coding better.  But I'll need to explain to my
geometry audience what miz3 does.  Thanks for comparing it privately
to Mizar.  It will take me a while to understand what you said.  If
John's HOLBY prover turns out to be weaker than Mizar, as you
suggested, I don't necessary think that's bad.  I need to understand
the proof assistant, and whether it's a little too strong or a little
too weak isn't as important.  So why can't we understand John's HOLBY?

-- 
Best,
Bill 

Ray_DEF : thm =
  |- ∀ A B X. ray A B X ⇔ ¬(A = B) ∧ Collinear A B X ∧ ¬(A ∈ open (X,B))

Angle_DEF : thm = |- ∀ A O B. angle A O B = ray O A ∪ ray O B

ANGLE : thm =
  |- ∀α. Angle α ⇔
             (∃ A O B. α = angle A O B ∧ ¬Collinear A O B)

RAY : thm = |- ∀ r. Ray r ⇔ (∃O A. ¬(O = A) ∧ r = ray O A)

SupplementaryAngles_DEF : thm =
  |- ∀α β.
         α Suppl β ⇔
         (∃ A O B A'.
              ¬Collinear A O B ∧ O ∈ open (A,A') ∧
              α = angle A O B ∧ β = angle B O A')

RightAngle_DEF : thm =
  |- ∀α. Right α ⇔ Angle α ∧ (∃ β. α Suppl β ∧ α ≡ β)

SupplementExists_THM : thm =
  |- ∀ α. Angle α ⇒ (∃ α'. α Suppl α')

SupplementImpliesAngle_THM : thm =
  |- ∀α β. α Suppl β ⇒ Angle α ∧ Angle β

SupplementSymmetry_THM : thm =
  |- ∀α β. α Suppl β ⇒ β Suppl α

SupplementsCongAnglesCong_THM : thm =
  |- ∀α β α' β'.
         α Suppl α'  ∧  β Suppl β'  ∧  α ≡ β
         ⇒ α' ≡ β'

SupplementUnique_THM : thm =
  |- ∀ α β β'.
         α Suppl β ∧ α Suppl β' ⇒ β ≡ β'

CongRightImpliesRight_THM : thm =
  |- ∀ α β.
         Angle α  ∧  Angle β  ∧  Right α  ∧  α ≡ β
         ⇒ Right β

RightAnglesCongruentHelp_THM : thm =
  |- ∀A O B A' P a.
         ¬Collinear A O B ∧ O ∈ open (A,A')
         ⇒ Line a ∧ O ∈ a ∧ A ∈ a
         ⇒ ¬(P ∈ a) ∧ P,B same_side a
         ⇒ Right (angle A O B) ∧ Right (angle A O P)
         ⇒ ¬(P ∈ int_angle A O B)

CongRightImpliesRight_THM : thm =
  |- ∀α β.
         Angle α ∧ Angle β  ∧  Right α  ∧  β ≡ α
         ⇒ Right β

RightAnglesCongruent_THM : thm =
  |- ∀α β. Right α ∧ Right β ⇒ α ≡ β

OppositeRightAnglesLinear_THM : thm =
  |- ∀ A B O H h.
         ¬Collinear A O H ∧ ¬Collinear H O B
         ⇒ Right (angle A O H) ∧ Right (angle H O B)
         ⇒ Line h ∧ O ∈ h ∧ H ∈ h
         ⇒ ¬(A,B same_side h)
         ⇒ O ∈ open (A,B)

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to