(* ========================================================================== *) (* FLYSPECK - BOOK FORMALIZATION *) (* *) (* Definition: muR *) (* Chapter: LEG *) (* Author: Thomas C. Hales *) (* Date: 2010-02-07 *) (* ========================================================================== *) (* This is the cayleyR function, expressed in terms of the unsquared variables indexing: five vertices v1..v5, yij runs from vi to vj, two tetrahedra, shared face v1,v2,v3. v4 v5 in opposite half-planes. enclosed = y45 = sqrt(x45) is the distance from v4 to v5. [y1,y2,y3,y4,y5,y6,y7,y8,y9]=[y14,y24,y34,y23,y13,y12,y15,y25,y35]. y1..y6 is the usual indexing of a simplex. y4..y9 is mod 6 congruent to the usual indexing. *) module type Mur_def_type = sig val muR : thm val muRa : thm end;; flyspeck_needs "leg/cayleyR_def.hl";; module Mur : Mur_def_type = struct let cayleyR = Cayleyr.cayleyR;; let muR = new_definition `muR y1 y2 y3 y4 y5 y6 y7 y8 y9 x = cayleyR (y6*y6) (y5*y5) (y1*y1) (y7*y7) (y4*y4) (y2*y2) (y8*y8) (y3*y3) (y9*y9) x`;; let muRa = prove( `muR y1 y2 y3 y4 y5 y6 y7 y8 y9 = cayleyR (y6*y6) (y5*y5) (y1*y1) (y7*y7) (y4*y4) (y2*y2) (y8*y8) (y3*y3) (y9*y9)`, ONCE_REWRITE_TAC[FUN_EQ_THM] THEN REWRITE_TAC[muR]);; end;;