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 ❙
❚