diff --git a/quad9/electrodinamica/homework/hw1/main.tex b/quad9/electrodinamica/homework/hw1/main.tex
new file mode 100644
index 0000000..c669a6a
--- /dev/null
+++ b/quad9/electrodinamica/homework/hw1/main.tex
@@ -0,0 +1,89 @@
+\documentclass[11pt,a4paper,dvipsnames]{article}
+\usepackage[utf8]{inputenc}
+
+\usepackage[catalan]{babel}
+\input{../../../hw_preamble.tex}
+
+\title{Entrega 1 de problemes\\Electrodinàmica}
+\author{Adrià Vilanova Martínez}
+\date{18 de setembre, 2021}
+
+\showcorrectionsfalse % Change "true" to "false" in order to show corrections as
+                      % if they weren't corrections (in black instead of red).
+
+\begin{document}
+
+\maketitle
+
+\begin{Problem}
+  En un sistema de referència inercial $\mathbf{S}$, dos esdeveniments tenen lloc al mateix punt de l'espai, però a temps diferents. Demostreu que:
+
+  \begin{enumerate}[(a)]
+    \item L'ordre temporal és el mateix en tot sistema de referència inercial (SRI).
+
+    \item La separació temporal en SRI diferents no té fita superior, i és mínima en el sistema $\mathbf{S}$.
+
+    \item La separació espacial no té fita superior ni inferior.
+  \end{enumerate}
+\end{Problem}
+
+Tenim 2 esdeveniments, $\mathbf{E}_0 = (c t_0, x, y, z)_\mathbf{S}$ i $\mathbf{E}_1 = (c t_1, x, y, z)_\mathbf{S}$, on $t_0 < t_1$ ja que al sistema de referència $\mathbf{S}$ el primer experiment passa abans que el segon, però al mateix punt de l'espai.
+
+Sigui $\mathbf{S}'$ un altre SRI qualsevol. A aquest segon SRI anomenem els esdeveniments per $\mathbf{E}_0'$ i $\mathbf{E}_1'$, per fer èmfasi que els expressarem/representarem en les coordenades d'aquest segon SRI, tot i que formalment es tracta dels mateixos esdeveniments ($\mathbf{E}_i \equiv \mathbf{E}_i'$).
+
+Suposarem que, tal com hem vist a classe, tots els sistemes de referència inercials es poden obtenir a partir d'un fixat a través del grup de transformacions de Poincaré. Aquest grup ve generat per les translacions d'espai, les translacions en el temps, les rotacions pròpies d'espai i els boosts en configuració estàndard (és a dir, qualsevol element del grup de Poincaré ve donat per la composició de diverses d'aquestes transformacions).
+
+\hrulefill
+
+\textbf{Solució per a):}
+
+Per demostrar aquest apartat, només fa falta comprovar que els generadors del grup compleixen la propietat de deixar l'ordre temporal invariant.
+
+És evident que sota les transformacions que només modifiquen l'espai (translacions i rotacions) l'ordre temporal es manté, ja que les coordenades temporals es mantenen invariants.
+
+Sota translacions temporals, l'ordre temporal (i, de fet, la separació temporal) també es manté, per la propietat bàsica
+\[ ct_0 < ct_1 \implies ct_0 + a < ct_1 + a. \]
+
+Així doncs, només fa falta comprovar que els boosts en configuració estàndard tenen aquesta propietat. Efectivament, això també passa, ja que la transformació de la coordenada temporal, tal com hem vist a classe, és:
+\[ ct' = \gamma \left( ct - \beta x \right), \]
+on $\beta = v/c$, i per tant obtenim:
+\[ ct_0' = \gamma \left( ct - \beta x \right) t_0 \notate[X]{{}<{}}{1}{t_0 < t_1} \gamma \left( ct - \beta x \right) t_1 = ct_1'. \]
+
+\textbf{Solució per b):}
+
+Prenem un sistema de referència $\mathbf{S}'$ que provingui d'un boost de Lorentz aplicat sobre el sistema de referència $\mathbf{S}$. Aleshores, tal com hem vist a classe els esdeveniments $\mathbf{E}_i' = (ct'_i, x', y', z')_{\mathbf{S}'}$ tindran coordenada temporal (llevat del ``factor de conversió''):
+\[ c t'_i = \gamma (c t_i - \beta x), \]
+i la diferència temporal entre els 2 esdeveniments a $\mathbf{S}'$ serà:
+\[ \Delta (ct') = ct'_1 - ct'_0 = \gamma c (t_1 - t_0) \lnotate[X]{{}={}}{1}{\scriptstyle \gamma = \frac{1}{\sqrt{1 - v^2/c^2}}} \frac{c}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0). \]
+
+El nostre objectiu és veure si podem fer $\Delta (ct')$ tant gran com volguem. Vegem què passa quan la velocitat s'apropa a $c$:
+\[ \lim_{v \to c^{-}} \Delta (ct) = \lim_{v \to c^{-}} \left[ \frac{c}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0) \right] \notate[X]{{}={}}{1}{\scriptstyle t_1 - t_0 \text{ constant}} c (t_1 - t_0) \lim_{v \to c^{-}} \frac{1}{\sqrt{1 - \frac{v^2}{c^2}}} = + \infty. \]
+
+Aleshores, això vol dir que per qualsevol separació temporal sempre podrem trobar una $v > 0$ tal que tingui aquesta separació.
+
+Per veure que la separació temporal mínima és la del sistema de referència $\mathbf{S}$, només caldrà veure que el boost de Lorentz que hem considerat abans en aquest apartat on la separació temporal és mínima és el definit pel paràmetre $v = 0$. Això és perquè qualsevol altre SRI es pot obtenir a partir d'un boost en configuració estàndard composat amb altres transformacions generadores del grup de Poincaré, que ja hem vist a l'apartat a) que mantenen les diferències de temps invariants.
+
+Primer de tot, observem que la funció $f(v) = \Delta(ct)$ és parell, ja que a la seva expressió només apareix $v^2$, que és igual a $(-v)^2$.
+
+Aleshores, si veiem que $f|_{(0, c)}$ és convexa (és a dir, amb derivada positiva), això vol dir que el mínim global de $f(v)$ és a $v = 0$.
+
+A $(0, c)$, tenim:
+\[ f'(v) = c(t_1 - t_0) \frac{1}{2} \left( 1 - \frac{v^2}{c^2} \right)^{-\frac{3}{2}} \frac{2v}{c^2} = \frac{v}{c} (t_1 - t_0) \left( 1 - \frac{v^2}{c^2} \right)^{- \frac{3}{2}}. \]
+
+Com $v > 0$, $t_0 < t_1 \implies t_1 - t_0 > 0$, i $v < c \implies 1 - \frac{v^2}{c^2} > 0$, tenim que $f'(v) > 0$ i, per tant, hem acabat la demostració.
+
+\newpage
+
+\textbf{Solució per c):}
+
+Considerem un Boost de Lorentz, i vegem que en el sistema $\mathbf{S}'$ fruit d'aquesta transformació podem assolir qualsevol separació espacial:
+\[ x_i' = \gamma (x - vt_i) \implies \]
+\[ \implies \Delta x' = x_1' - x_0' = \gamma (x - v t_1 - x + v t_0) = \gamma v (t_0 - t_1) = - \gamma v (t_1 - t_0) \implies \]
+\[ \implies \Delta x' = - \frac{v}{\sqrt{1 - \frac{v^2}{c^2}}} (t_1 - t_0). \]
+
+Observem que, si $v = 0$, $|\Delta x'| = 0$. A més, si fem tendir $v \to \pm c$:
+\[ \lim_{v \to -c^+} \Delta x' = + \infty, \quad \lim_{v \to +c^-} \Delta x' = - \infty. \]
+
+Així doncs, queda demostrat que no hi ha fita superior ni inferior per la separació espacial.
+
+\end{document}
