namespace  http://mathhub.info/MitM/core/typedsets 

import base http://mathhub.info/MitM/Foundation 
import sig http://gl.mathhub.info/MMT/LFX/Sigma 


theory FiniteSets : base:?Logic =
	include ☞base:?ProductTypes 
	include ?AllSets 
	

	finiteSet : type ⟶ type  = [t] Σ  x : (set t) . ⊦ x finite # finSet 1 
	
	setToFiniteSet : {A : type , s : set A} ⊦ s finite ⟶ finSet A = [A,s,p] ⟨ s , p ⟩
	
	theorem_emptySetIsFinite : {A : type} ⊦ (∅ : set A) finite
	
	theorem_setConsFinite : {A : type, s : set A , a : A} ⊦ s finite ⟶ ⊦ (s <- a) finite 
	
	theorem_setConsFiniteSplit : {A : type, s : set A , a : A } ⊦ (s <- a) finite ⟶ ⊦ s finite  # setSpFin 2 3 4 // error , wenn keine notation dann fehle rin setsum -> bla ❙