feat(hott/homotopy): add join switch and derive associativity from switch
feat(hott/homotopy): add join switch and derive associativity from switch

johoelzl/lean,dselsam/lean,rlewis1988/lean,soonhokong/lean,soonhokong/lean,soonhokong/lean-osx,fgdorais/lean,fgdorais/lean,leodemoura/lean,Kha/lean,javra/lean,javra/lean,rlewis1988/lean,fpvandoorn/lean,dselsam/lean,leanprover-community/lean,rlewis1988/lean,fpvandoorn/lean2,rlewis1988/lean,fpvandoorn/lean,fpvandoorn/lean,UlrikBuchholtz/lean,johoelzl/lean,Kha/lean,levnach/lean,soonhokong/lean,johoelzl/lean,UlrikBuchholtz/lean,soonhokong/lean-windows,johoelzl/lean,avigad/lean,soonhokong/lean-osx,levnach/lean,leanprover/lean,digama0/lean,digama0/lean,soonhokong/lean-osx,UlrikBuchholtz/lean,Kha/lean,leanprover/lean,UlrikBuchholtz/lean,avigad/lean,leanprover-community/lean,levnach/lean,avigad/lean,leodemoura/lean,fpvandoorn/lean2,fgdorais/lean,leanprover/lean,leanprover/lean,UlrikBuchholtz/lean,leodemoura/lean,leanprover-community/lean,leanprover/lean,leodemoura/lean,leanprover-community/lean,johoelzl/lean,dselsam/lean,digama0/lean,Kha/lean,leanprover-community/lean,javra/lean,avigad/lean,fgdorais/lean,avigad/lean,javra/lean,soonhokong/lean,johoelzl/lean,soonhokong/lean-windows,levnach/lean,avigad/lean,soonhokong/lean-windows,dselsam/lean,digama0/lean,leanprover-community/lean,fgdorais/lean,fpvandoorn/lean,javra/lean,soonhokong/lean-windows,fpvandoorn/lean2,Kha/lean,fpvandoorn/lean,digama0/lean,Kha/lean,fpvandoorn/lean2,leodemoura/lean,dselsam/lean,soonhokong/lean-windows,dselsam/lean,leodemoura/lean,digama0/lean,soonhokong/lean-osx,leanprover/lean,fpvandoorn/lean,levnach/lean,rlewis1988/lean,soonhokong/lean,fpvandoorn/lean2,rlewis1988/lean,fgdorais/lean,soonhokong/lean-osx