diff --git a/comsoc/TieBreak.go b/comsoc/TieBreak.go
new file mode 100644
index 0000000000000000000000000000000000000000..341f73b55cdab070240bd3ad91660224709334e4
--- /dev/null
+++ b/comsoc/TieBreak.go
@@ -0,0 +1,34 @@
+
+package comsoc
+import("fmt")
+ 
+func TieBreakFactory(orderedAlts []Alternative) (func ([]Alternative) (Alternative, error)){
+		return func (bestAlts []Alternative) (Alternative, error) {
+			bestAlt := bestAlts[0]
+			for _,alt:= range bestAlts[1:]{
+				if isPref(alt,bestAlt,orderedAlts){
+					bestAlt = alt
+				}
+			}
+			return bestAlt, nil
+		}
+}
+
+func Test_tieBreakFactory(){
+	orderedAlts := []Alternative{8,9,6,1,3,2}
+	fmt.Println("Ordre strict :", orderedAlts)
+	lambda:=TieBreakFactory(orderedAlts)
+	bestAlts := []Alternative{3,6}
+	fmt.Println("Premières alternatives à départager :", bestAlts)
+	bestAlt,_ := lambda(bestAlts)
+	fmt.Println("Première alternative :", bestAlt)
+}
+
+// func SWFFactory(func swf(p Profile) (Count, error), func ([]Alternative) (Alternative, error)) (func(Profile) ([]Alternative, error)){
+	
+	
+// 	return func ([]Alternative) (Alternative, error) {
+// 		return orderedAlts[0],nil
+// 	}
+// }
+//func SCFFactory(func scf(p Profile) ([]Alternative, error), func ([]Alternative) (Alternative, error)) (func(Profile) (Alternative, error))