@user21820
does "f : func(S,T) ; x : S ⊢ f(x) : T." govern "f : func(S,bool) ; x : S ⊢ f(x) : bool." and also "then you can introduce a new function-symbol f and add the axiom "f : func(S[1..k],T)" and the rule "f : func(S[1..k],T) ; x[1..k] : S[1..k] ⊢ f(x[1..k]) : T". can you omit the "f : func(S[1..k],T)" in the rule since it's already an axiom?