Nuprl Lemma : mset_for_when_unique
∀s:DSet. ∀g:IAbMonoid. ∀f:|s| ⟶ |g|. ∀b:|s| ⟶ 𝔹. ∀u:|s|.
  ((↑b[u])
  
⇒ (∀as:MSet{s}
        ((∀x:|s|. ((x #∈ as) ≤ 1))
        
⇒ (↑(u
           ∈b as))
        
⇒ (∀v:|s|. ((↑b[v]) 
⇒ (↑(v ∈b as)) 
⇒ (v = u ∈ |s|)))
        
⇒ ((msFor{g} x ∈ as. when b[x]. f[x]) = f[u] ∈ |g|))))
Proof
Definitions occuring in Statement : 
mset_for: mset_for, 
mset_mem: mset_mem, 
mset_count: x #∈ a
, 
mset: MSet{s}
, 
assert: ↑b
, 
bool: 𝔹
, 
so_apply: x[s]
, 
le: A ≤ B
, 
all: ∀x:A. B[x]
, 
implies: P 
⇒ Q
, 
function: x:A ⟶ B[x]
, 
natural_number: $n
, 
equal: s = t ∈ T
, 
mon_when: when b. p
, 
iabmonoid: IAbMonoid
, 
grp_car: |g|
, 
dset: DSet
, 
set_car: |p|
Definitions unfolded in proof : 
all: ∀x:A. B[x]
, 
implies: P 
⇒ Q
, 
uall: ∀[x:A]. B[x]
, 
member: t ∈ T
, 
dset: DSet
, 
so_lambda: λ2x.t[x]
, 
subtype_rel: A ⊆r B
, 
nat: ℕ
, 
so_apply: x[s]
, 
prop: ℙ
, 
iabmonoid: IAbMonoid
, 
imon: IMonoid
, 
sq_stable: SqStable(P)
, 
mset: MSet{s}
, 
quotient: x,y:A//B[x; y]
, 
and: P ∧ Q
, 
squash: ↓T
, 
mset_for: mset_for, 
mset_mem: mset_mem, 
mset_count: x #∈ a
, 
iff: P 
⇐⇒ Q
, 
rev_implies: P 
⇐ Q
Lemmas referenced : 
sq_stable__all, 
all_wf, 
set_car_wf, 
le_wf, 
mset_count_wf, 
nat_wf, 
assert_wf, 
mset_mem_wf, 
equal_wf, 
grp_car_wf, 
mset_for_wf, 
mon_when_wf, 
sq_stable__equal, 
mset_wf, 
bool_wf, 
iabmonoid_wf, 
dset_wf, 
squash_wf, 
equal-wf-base, 
list_wf, 
permr_wf, 
mem_wf, 
count_wf, 
mon_for_when_unique, 
distinct_iff_counts_le_one
Rules used in proof : 
sqequalSubstitution, 
sqequalTransitivity, 
computationStep, 
sqequalReflexivity, 
lambdaFormation, 
cut, 
introduction, 
extract_by_obid, 
sqequalHypSubstitution, 
isectElimination, 
thin, 
setElimination, 
rename, 
hypothesisEquality, 
hypothesis, 
sqequalRule, 
lambdaEquality, 
dependent_functionElimination, 
applyEquality, 
natural_numberEquality, 
because_Cache, 
functionEquality, 
functionExtensionality, 
independent_functionElimination, 
pointwiseFunctionalityForEquality, 
pertypeElimination, 
productElimination, 
imageMemberEquality, 
baseClosed, 
productEquality, 
equalityTransitivity, 
equalitySymmetry
Latex:
\mforall{}s:DSet.  \mforall{}g:IAbMonoid.  \mforall{}f:|s|  {}\mrightarrow{}  |g|.  \mforall{}b:|s|  {}\mrightarrow{}  \mBbbB{}.  \mforall{}u:|s|.
    ((\muparrow{}b[u])
    {}\mRightarrow{}  (\mforall{}as:MSet\{s\}
                ((\mforall{}x:|s|.  ((x  \#\mmember{}  as)  \mleq{}  1))
                {}\mRightarrow{}  (\muparrow{}(u
                      \mmember{}\msubb{}  as))
                {}\mRightarrow{}  (\mforall{}v:|s|.  ((\muparrow{}b[v])  {}\mRightarrow{}  (\muparrow{}(v  \mmember{}\msubb{}  as))  {}\mRightarrow{}  (v  =  u)))
                {}\mRightarrow{}  ((msFor\{g\}  x  \mmember{}  as.  when  b[x].  f[x])  =  f[u]))))
Date html generated:
2017_10_01-AM-10_00_39
Last ObjectModification:
2017_03_03-PM-01_02_20
Theory : mset
Home
Index