Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on Type Systems.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
#   (find-eev-quick-intro)
#   http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/types.e>
#           or at <http://angg.twu.net/e/types.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######




# «.dependent»		(to "dependent")
# «.dependent-sums»	(to "dependent-sums")



https://math.stackexchange.com/questions/3466976/online-reference-book-for-implementing-concepts-in-type-theory/3468022#3468022

Simon Thompson: "Type Theory and Functional Programming" (1999)
https://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ttfp.pdf


#####
#
# Research library of the ##dependent IRC channel.
# 2020mar28
#
#####

# «dependent» (to ".dependent")
# (find-es "irc" "irccloud")
# https://github.com/dpndnt/library




#####
#
# How to express dependent sums as inductive types
# 2020mar31
#
#####

# «dependent-sums» (to ".dependent-sums")
# https://hub.darcs.net/dolio/agda-share/browse/ParamInduction.agda#139
# https://categorytheory.zulipchat.com/#narrow/stream/229111-general/topic/Category.20of.20Types
# (find-books "__logic/__logic.el" "girard")
# (find-proofsandtypespage (+ 8 81) "11 System F")

https://categorytheory.zulipchat.com/#narrow/stream/229111-general/topic/Category.20of.20Types/near/192349559

Anyone has good pointers on why most texts on the Calculus of
Constructions written by logicians avoid mentioning dependent sums,
like Σa:A.B(a)? When we do Categorical Semantics for DTTs (canonical
e.g.: in Bart Jacobs "Categorical Logic and Type Theory") we do the
opposite - we explain most concepts on the adjunction Σ⊣π^* first, and
leave most properties of π^*⊣Π as exercises...

Here is my guess: rules for dependent sums _used to be_ given
explicitly - for example they appear in the system in Zhaohui Luo's
thesis - but then people like Christine Paulin-Mohring showed that
dependent sums can be defined as certain initial algebras using
inductive types blah blah blah - see
https://hal.inria.fr/hal-01094195/ for an overview...

Problem: I'm not being able to neither find on the web, nor define
myself, a definition of Σa:A.B(a) given in terms of Π! I know that
chapter 11 of Girard's "Proofs and Types" -
http://www.paultaylor.eu/stable/prot.pdf - is about System F and about
how to define Booleans, naturals, products and inductive types in
System F, and I'm rereading it and finding it quite clear, but I'm not
being able to adapt its definition of "×" to a definition of a "Σ" -
probably because I don't have much practise...

Any hints? Any pointers?
Thanks in advance!!!



What is "coe"? Some kind of coercion operator?
Anyway: thanks, great! Cleaning up the notation a bit, this works in
the naïve models that I have in mind:

Let S = Σx:A.B(x)
and S' = ΠR:Type. (Πx:A. B(x) → R) → R.
If s':S' then we can define πs' and π's' as:
πs' := s' A (λa:A. λb:B(a). a) and
π's' := s' (B(πs')) (λa:A. λb:B(a). b).

Homework for me for the next months: understand the extra axioms that
we need to add to make this work "in general"...



Dan Doel: Here is an Agda proof that parametricity allows you to
derive induction for encoded Σ:
https://hub.darcs.net/dolio/agda-share/browse/ParamInduction.agda#139

Dan Doel: Although I haven't run it in a very long time, so it's possible the file no longer loads.










#  Local Variables:
#  coding:               utf-8-unix
#  End: