Formal Proof of conjugate function Butelle Hivert Mayero Formal proof of SCHUR conjugate function Toumazet Objectives and tools SCHUR Micaela Mayero 1 Frama-C Franck Butelle 1 Florent Hivert 2 Some combi- Frédéric Toumazet 3 natorial objects Integer 1 Univ. Paris 13, LIPN UMR 7030 Partition Young Tableaux 2 Univ. Paris 11, LRI UMR 8623 Symmetric Functions Schur Functions 4 Univ. Marne-la-Vallée, LIGM UMR 8049 The conjugate C function MAP 2012 — Konstanz Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 1/26
Formal Proof of conjugate function Butelle Hivert Objectives and tools Mayero Toumazet Objectives and tools Some combinatorial objects SCHUR Frama-C Some combi- natorial The C function objects Integer Partition Young Tableaux Symmetric Formal Proof Functions Schur Functions The conjugate Conclusion C function Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 2/26
Formal Proof of conjugate Objectives and tools function Butelle Hivert Mayero Toumazet • Proof of concept: Objectives • Algebraic combinatorics area: combinatorial explosion and tools SCHUR • SCHUR software, now under GNU GPL Frama-C • Prove an old C program, uncommented and tricky, not Some combi- designed to be proved ! natorial objects • extract one key function, simple but quite representative Integer Partition • prove it Young Tableaux • try to deduce some methodology Symmetric Functions • Tools and Means Schur Functions • Frama-C, plug-in Jessie The conjugate • First-order logic annotations C function • Automatic provers... Formal Proof • And if it is not enough, use interactive provers. Annotate the program Automatically prove Coq proof assistant Conclusion 3/26
Formal Proof of conjugate SCHUR function Butelle Hivert Mayero Toumazet • Interactive software (more than 240 commands) Objectives and tools • calculate properties of Lie groups and symmetric functions SCHUR Frama-C • 20 years of research in algebraic combinatorics, physics, Some combi- natorial etc. objects Integer • Tool for computations, conjectures, teaching,... Partition Young Tableaux • Over 45 000 lines of C without comments Symmetric Functions Schur • Originally written by B.G. Wybourne. Functions The conjugate • Now maintained by F. Butelle, R. King and F. Toumazet. C function • Nowadays under GPL (sourceforge.net). Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 4/26
Formal Proof of conjugate Frama-C / Jessie function Butelle Hivert Mayero Toumazet • platform for source-code analysis of C software (successor of Caduceus) Objectives and tools • Jessie plug-in: generate verification conditions from SCHUR Frama-C first-order logic annotations (ACSL, based on Why, Hoare Some combi- natorial logic). objects Integer • Call external automatic provers (SMT) (Simplify, Alt-Ergo, Partition Young Z3, CVC3,...) Tableaux Symmetric Functions • Many output formats available for interactive provers Schur Functions (Coq, PVS, Isabelle/HOL,...) The conjugate • Graphical interface C function Formal Proof Annotate the program • (Now Why3) Automatically prove Coq proof assistant Conclusion 5/26
Formal Proof of conjugate Some combinatorial objects function Butelle Hivert Mayero Objectives and tools Toumazet Objectives and tools Some combinatorial objects SCHUR Integer Partition Frama-C Some combi- Young Tableaux natorial objects Symmetric Functions Integer Partition Schur Functions Young Tableaux The conjugate Symmetric Functions Schur Functions The The C function conjugate C function Formal Proof Formal Proof Annotate the program Automatically prove Coq proof Conclusion assistant Conclusion 6/26
Formal Proof of conjugate Integer Partition and Ferrers function Butelle diagrams Hivert Mayero Toumazet Definition: Integer Partition Objectives write n has a sum of non increasing integers and tools SCHUR Frama-C Example : 4 = 3 + 1 = 2 + 2 = 2 + 1 + 1 = 1 + 1 + 1 + 1 Some combi- natorial Definition: Ferrers Diagram objects Integer The integer partition λ = ( 3 , 1 ) can be represented by the Partition Young Tableaux following diagram F λ = Symmetric Functions Schur Functions The Important role: conjugate C function • group representation theory Formal Proof • symmetric polynomials and the symmetric group Annotate the program Automatically • Frobenius (1849–1917): irreducible representations of prove Coq proof symmetric groups are indexed by integer partitions... assistant Conclusion 7/26
Formal Proof of conjugate Young Tableaux function Butelle Hivert Mayero Toumazet Objectives and tools Definition: a semi-standard Young tableau SCHUR of shape λ is a numbering of the boxes of F λ with entries from Frama-C Some combi- { 1 , 2 , ..., n } , weakly increasing across rows and strictly natorial objects increasing down columns. Integer Partition Young 1 2 2 5 Tableaux Symmetric 2 4 Functions Schur Example : λ = ( 4 , 2 , 2 , 1 ) : Functions 3 6 The conjugate 5 C function Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 8/26
Formal Proof of conjugate Symmetric Functions function Butelle Hivert Mayero Toumazet Objectives and tools SCHUR Frama-C Definition: a symmetric function Some combi- natorial objects f ( x 1 , x 2 , . . . ) is invariant under any permutation of its variables: Integer Partition f ( x 1 , x 2 , . . . ) = f ( x 2 , x 1 , . . . ) = . . . Young Tableaux Usually restricted to polynomials functions. Symmetric Functions Schur Functions The conjugate C function Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 9/26
Formal Proof of conjugate Schur Functions function Butelle Hivert Mayero Toumazet Definition: a Schur function For a semi-standard Young tableau T of shape λ , Objectives and tools if X T is the product of all x i , for all i appearing in T , then SCHUR T ∈ Tab ( λ ) x T where Tab ( λ ) is the set of all tableaux of Frama-C s λ = � Some combi- shape λ . natorial objects Integer Partition Example : Young Tableaux λ = ( 2 , 1 ) ; when using alphabet { 1 , 2 , 3 } , Tab ( λ ) = Symmetric Functions 1 1 1 1 2 2 1 2 1 3 1 2 1 3 2 3 Schur Functions The 2 3 3 3 2 2 3 3 conjugate C function s ( 21 ) ( x 1 , x 2 , x 3 ) = x 2 1 x 2 + x 2 1 x 3 + x 2 2 x 3 + 2 x 1 x 2 x 3 + x 1 x 2 2 + x 1 x 2 3 + x 2 x 2 3 Formal Proof Schur functions are the most important linear basis of Annotate the program Automatically symmetric function’s algebra. prove Coq proof assistant Conclusion 10/26
Formal Proof of conjugate Computation in algebraic function Butelle combinatorics Hivert Mayero Toumazet Objectives and tools Architecture of a software for computing in algebraic SCHUR Frama-C combinatorics: Some combi- • a computer algebra kernel natorial objects • a very large bunch of small combinatorial functions which Integer Partition Young enumerate and manipulate the combinatorial data Tableaux Symmetric structures. Functions Schur • surgery on lists of integers or lists of lists of integers Functions The • computing the conjugate of a partition is a very good conjugate example... C function • used by more than 100 commands in Schur. Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 11/26
Formal Proof of conjugate Conjugate partition function Butelle Hivert Mayero Toumazet The conjugate of an integer partition is the partition associated Objectives to the diagonal symmetric of its shape. and tools SCHUR Example Frama-C Some combi- λ = ( 3 , 2 , 1 , 1 , 1 ) natorial objects Integer Partition Young Tableaux Symmetric Functions Schur Functions The conjugate C function Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 12/26
Formal Proof of conjugate Conjugate partition function Butelle Hivert Mayero Toumazet The conjugate of an integer partition is the partition associated Objectives to the diagonal symmetric of its shape. and tools SCHUR Example Frama-C Some combi- λ = ( 3 , 2 , 1 , 1 , 1 ) natorial objects Integer Partition Young Tableaux Symmetric Functions Schur Functions The conjugate C function Formal Proof Annotate the program Automatically prove Coq proof assistant Conclusion 12/26
Formal Proof of conjugate Conjugate partition function Butelle Hivert Mayero Toumazet The conjugate of an integer partition is the partition associated Objectives to the diagonal symmetric of its shape. and tools SCHUR Example Frama-C Some combi- λ = ( 3 , 2 , 1 , 1 , 1 ) natorial objects Integer Partition Young Tableaux Symmetric Conjugate = ⇒ Functions Schur Functions The conjugate C function Formal Proof The conjugate of ( 3 , 2 , 1 , 1 , 1 ) is therefore ( 5 , 2 , 1 ) . Annotate the program Automatically prove Coq proof assistant Conclusion 12/26
Recommend
More recommend