The symmetric bilinear form that gives rise to your quadratic form $q$ is given by
$$
  b((x_1,y_1,z_1),(x_2,y_2,z_2))=x_1x_2-z_1z_2+2x_1y_2+2y_1x_2-y_1z_2-z_1y_2
$$
Now the conditions of being orthogonal to $(1,0,2)$ and to $(3,-1,0)$ are  respectively given by setting for instance $(x_2,y_2,z_2)$ equal to that vector and equating the resulting expression to$~0$; this respectively gives the equations 
$$ \begin{align}
 x-2z+2y-2y&amp;=0,\\ 3x-2x+6y+z&amp;=0,
\end{align}
$$
or after simplification
$$ \begin{align}
 x\phantom{{}+0y}-2z&amp;=0,\\ x+6y+\phantom0z&amp;=0.
\end{align}
$$
Then $V^\perp$ is spanned by for instance $(4,-1,2)$. It happens that this vector is also in $V$ (it is the sum of the two given vectors spanning $V$), which shows that you are not dealing with an inner product here (which should be positive definite). Indeed $q(4,-1,2)=0$. (Such a vector orthogonal to itself is called an isotropic vector for the bilinear form.)

If $E$ is the whole space, one does have $\dim(V)+\dim(V^\perp)=\dim(E)$ here. But even that is only valid in general provided that that bilinear form is nondegenerate, meaning that no nonzero vector is perpendicular to all vectors. Even though the given bilinear form is indefinite, it is nondegenerate. That can be checked by checking that the Gram matrixof $b$
$$
  \begin{pmatrix}1&amp;2&amp;0\\2&amp;0&amp;-1\\0&amp;-1&amp;1\end{pmatrix}
$$
has nonzero determinant. So $\dim(V)+\dim(V^\perp)=\dim(E)$ could have been expected here.

Orthogonal complement $V^\bot$ of the vector space $V=\langle(1,0,2),(3,-1,0)\rangle$ and $V\cap V^\bot$
When I use apt-get update and apt-get upgrade,there are some packages should installed in newest version,like below:

The following packages will be upgraded:
  accountsservice apparmor apport apt apt-transport-https apt-utils binutils
  cloud-init cpp-4.8 dpkg fuse g++-4.8 gcc-4.8 gcc-4.8-base gdisk gnupg gpgv
  grub-common grub-legacy-ec2 grub-pc grub-pc-bin grub2-common initscripts
  isc-dhcp-client isc-dhcp-common libaccountsservice0 libapparmor-perl
  libapparmor1 libapt-inst1.5 libapt-pkg4.12 libasan0 libatomic1 libbsd0
  libcurl3-gnutls libdrm2 libedit2 libfuse2 libgcc-4.8-dev libgd3 libgomp1
  libitm1 libjson-c2 libjson0 libnuma1 libpam-systemd libpolkit-agent-1-0
  libpolkit-backend-1-0 libpolkit-gobject-1-0 libquadmath0 libstdc++-4.8-dev
  libstdc++6 libsystemd-daemon0 libsystemd-login0 libtsan0 libudev1 libxext6
  linux-libc-dev ntpdate openssl overlayroot patch policykit-1 ppp
  python-urllib3 python3-apport python3-problem-report python3-update-manager
  rsyslog systemd-services sysv-rc sysvinit-utils tcpdump tzdata udev
  update-manager-core
75 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.


If I didn't know every one of there packages what will happen if there update in newest version.I shouldn't execute this command(apt-get upgrade).

For example:

This php version is before I upgrade

yzxu@ubuntu:/tmp/git-2.1.2$ php --version
PHP 5.6.6-1+deb.sury.org~precise+1 (cli) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies


and after I upgrade:

yzxu@ubuntu:/tmp/git-2.1.2$ php --version
PHP 5.6.10-1+deb.sury.org~precise+1 (cli) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies


The php version is changed.And if I didn't what what was change in two version,should I upgrade it?Is it will influence product?
